ibm_db 4.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +5 -5
  2. data/README +2 -2
  3. data/ext/Makefile +266 -0
  4. data/ext/extconf.rb +34 -3
  5. data/ext/gil_release_version +3 -0
  6. data/ext/ibm_db.c +100 -108
  7. data/ext/mkmf.log +103 -0
  8. data/ext/unicode_support_version +3 -0
  9. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +256 -175
  10. data/test/cases/attribute_decorators_test.rb +2 -1
  11. data/test/cases/cache_key_test.rb +2 -1
  12. data/test/cases/comment_test.rb +4 -2
  13. data/test/cases/date_time_precision_test.rb +2 -1
  14. data/test/cases/defaults_test.rb +2 -1
  15. data/test/cases/migration/foreign_key_test.rb +4 -2
  16. data/test/cases/migration/helper.rb +1 -1
  17. data/test/cases/migration/references_foreign_key_test.rb +10 -5
  18. data/test/cases/migrator_test.rb +2 -1
  19. data/test/cases/schema_dumper_test.rb +3 -3
  20. data/test/cases/time_precision_test.rb +2 -1
  21. data/test/cases/transactions_test.rb +3 -2
  22. data/test/config.yml +154 -154
  23. data/test/connections/native_ibm_db/connection.rb +44 -0
  24. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  25. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  26. data/test/fixtures/developers.yml +1 -1
  27. data/test/fixtures/pirates.yml +0 -3
  28. data/test/fixtures/randomly_named_a9.yml +7 -7
  29. data/test/ibm_db_test.rb +24 -24
  30. data/test/models/admin.rb +1 -1
  31. data/test/models/admin/account.rb +1 -1
  32. data/test/models/admin/randomly_named_c1.rb +7 -7
  33. data/test/models/binary.rb +1 -1
  34. data/test/models/event.rb +1 -1
  35. data/test/models/guid.rb +1 -1
  36. data/test/models/randomly_named_c1.rb +3 -3
  37. data/test/models/ship_part.rb +1 -1
  38. data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
  39. data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
  40. data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
  41. data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
  42. metadata +24 -13
  43. data/test/fixtures/author_addresses.original +0 -11
  44. data/test/fixtures/authors.original +0 -17
@@ -0,0 +1,44 @@
1
+ =begin
2
+ print "Using native IBM_DB\n"
3
+ require_dependency 'models/course'
4
+ require 'logger'
5
+
6
+ ActiveRecord::Base.logger = Logger.new STDOUT
7
+ ActiveRecord::Base.logger.level = Logger::FATAL
8
+
9
+ ActiveRecord::Base.configurations = {
10
+ 'arunit' => {
11
+ :adapter => 'ibm_db',
12
+ :username => 'db2user',
13
+ :password => 'secret',
14
+ :host => 'bilbao',
15
+ :port => '50000',
16
+ :schema => 'rails123',
17
+ :account => 'tester',
18
+ :app_user => 'tester_11',
19
+ :application => 'rails_tests',
20
+ :workstation => 'auckland',
21
+ :start_id => 100,
22
+ :database => 'ARUNIT',
23
+ :parameterized => false
24
+ },
25
+ 'arunit2' => {
26
+ :adapter => 'ibm_db',
27
+ :username => 'db2user',
28
+ :password => 'secret',
29
+ :host => 'bilbao',
30
+ :port => '50000',
31
+ :schema => 'rails123',
32
+ :account => 'tester',
33
+ :app_user => 'tester_11',
34
+ :application => 'rails_tests',
35
+ :workstation => 'auckland',
36
+ :start_id => 100,
37
+ :database => 'ARUNIT2',
38
+ :parameterized => false
39
+ }
40
+ }
41
+
42
+ ActiveRecord::Base.establish_connection 'arunit'
43
+ Course.establish_connection 'arunit2'
44
+ =end
@@ -1,7 +1,7 @@
1
- first_instance:
2
- some_attribute: AAA
3
- another_attribute: 000
4
-
5
- second_instance:
6
- some_attribute: BBB
7
- another_attribute: 999
1
+ first_instance:
2
+ some_attribute: AAA
3
+ another_attribute: 000
4
+
5
+ second_instance:
6
+ some_attribute: BBB
7
+ another_attribute: 999
@@ -1,7 +1,7 @@
1
- first_instance:
2
- some_attribute: AAA
3
- another_attribute: 000
4
-
5
- second_instance:
6
- some_attribute: BBB
7
- another_attribute: 999
1
+ first_instance:
2
+ some_attribute: AAA
3
+ another_attribute: 000
4
+
5
+ second_instance:
6
+ some_attribute: BBB
7
+ another_attribute: 999
@@ -19,4 +19,4 @@ dev_<%= digit %>:
19
19
  poor_jamis:
20
20
  id: 11
21
21
  name: Jamis
22
- salary: 9000
22
+ salary: 9000
@@ -10,6 +10,3 @@ redbeard:
10
10
 
11
11
  mark:
12
12
  catchphrase: "X $LABELs the spot!"
13
-
14
- 1:
15
- catchphrase: "#$LABEL pirate!"
@@ -1,7 +1,7 @@
1
- first_instance:
2
- some_attribute: AAA
3
- another_attribute: 000
4
-
5
- second_instance:
6
- some_attribute: BBB
7
- another_attribute: 999
1
+ first_instance:
2
+ some_attribute: AAA
3
+ another_attribute: 000
4
+
5
+ second_instance:
6
+ some_attribute: BBB
7
+ another_attribute: 999
@@ -1,25 +1,25 @@
1
- require 'test/unit'
2
-
3
- class IBM_DBAdapterTest < Test::Unit::TestCase
4
- require 'pathname'
5
-
6
- # Fixture
7
- def driver_lib_path
8
- drv_path = Pathname.new(File.dirname(__FILE__)).parent + 'lib'
9
- drv_path += (RUBY_PLATFORM =~ /mswin32/) ? 'mswin32' : 'linux32'
10
- drv_path += 'ibm_db.so'
11
- end
12
-
13
- # Check IBM_DB Ruby driver for this platform: #{RUBY_PLATFORM}
14
- def test_driver_existence
15
- driver = driver_lib_path
16
- assert driver.file?
17
- end
18
-
19
- # Attempt loading IBM_DB Ruby driver for this platform: #{RUBY_PLATFORM}
20
- def test_driver_loading
21
- driver = driver_lib_path
22
- require "#{driver.to_s}"
23
- assert true
24
- end
1
+ require 'test/unit'
2
+
3
+ class IBM_DBAdapterTest < Test::Unit::TestCase
4
+ require 'pathname'
5
+
6
+ # Fixture
7
+ def driver_lib_path
8
+ drv_path = Pathname.new(File.dirname(__FILE__)).parent + 'lib'
9
+ drv_path += (RUBY_PLATFORM =~ /mswin32/) ? 'mswin32' : 'linux32'
10
+ drv_path += 'ibm_db.so'
11
+ end
12
+
13
+ # Check IBM_DB Ruby driver for this platform: #{RUBY_PLATFORM}
14
+ def test_driver_existence
15
+ driver = driver_lib_path
16
+ assert driver.file?
17
+ end
18
+
19
+ # Attempt loading IBM_DB Ruby driver for this platform: #{RUBY_PLATFORM}
20
+ def test_driver_loading
21
+ driver = driver_lib_path
22
+ require "#{driver.to_s}"
23
+ assert true
24
+ end
25
25
  end
@@ -2,4 +2,4 @@ module Admin
2
2
  def self.table_name_prefix
3
3
  'admin_'
4
4
  end
5
- end
5
+ end
@@ -1,3 +1,3 @@
1
1
  class Admin::Account < ActiveRecord::Base
2
2
  has_many :users
3
- end
3
+ end
@@ -1,7 +1,7 @@
1
- class Admin::ClassNameThatDoesNotFollowCONVENTIONS1 < ActiveRecord::Base
2
- self.table_name = :randomly_named_table2
3
- end
4
-
5
- class Admin::ClassNameThatDoesNotFollowCONVENTIONS2 < ActiveRecord::Base
6
- self.table_name = :randomly_named_table3
7
- end
1
+ class Admin::ClassNameThatDoesNotFollowCONVENTIONS1 < ActiveRecord::Base
2
+ self.table_name = :randomly_named_table2
3
+ end
4
+
5
+ class Admin::ClassNameThatDoesNotFollowCONVENTIONS2 < ActiveRecord::Base
6
+ self.table_name = :randomly_named_table3
7
+ end
@@ -1,2 +1,2 @@
1
1
  class Binary < ActiveRecord::Base
2
- end
2
+ end
@@ -1,3 +1,3 @@
1
1
  class Event < ActiveRecord::Base
2
2
  validates_uniqueness_of :title
3
- end
3
+ end
@@ -1,2 +1,2 @@
1
1
  class Guid < ActiveRecord::Base
2
- end
2
+ end
@@ -1,3 +1,3 @@
1
- class ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
2
- self.table_name = :randomly_named_table1
3
- end
1
+ class ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
2
+ self.table_name = :randomly_named_table1
3
+ end
@@ -5,4 +5,4 @@ class ShipPart < ActiveRecord::Base
5
5
  accepts_nested_attributes_for :ship
6
6
 
7
7
  validates_presence_of :name
8
- end
8
+ end
@@ -0,0 +1,137 @@
1
+ =begin
2
+ ActiveRecord::Schema.define do
3
+
4
+ execute "DROP TABLE COMMENTS" rescue nil
5
+ execute "DROP TABLE POSTS" rescue nil
6
+ execute "DROP TABLE ITEMS" rescue nil
7
+ execute "DROP TABLE TOPICS" rescue nil
8
+ execute "DROP TABLE fk_test_has_fk" rescue nil
9
+ execute "DROP TABLE fk_test_has_pk" rescue nil
10
+ execute "DROP TABLE CIRCLES" rescue nil
11
+ execute "DROP TABLE SQUARES" rescue nil
12
+ execute "DROP TABLE TRIANGLES" rescue nil
13
+ execute "DROP TABLE NON_POLY_ONES" rescue nil
14
+ execute "DROP TABLE NON_POLY_TWOS" rescue nil
15
+ execute "DROP TABLE PAINT_COLORS" rescue nil
16
+ execute "DROP TABLE PAINT_TEXTURES" rescue nil
17
+
18
+ execute <<_SQL
19
+ CREATE TABLE comments (
20
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
21
+ post_id INT NOT NULL,
22
+ type VARCHAR(255) DEFAULT NULL,
23
+ body VARCHAR(3000)NOT NULL,
24
+ PRIMARY KEY (id)
25
+ );
26
+ _SQL
27
+
28
+ execute <<_SQL
29
+ CREATE TABLE posts (
30
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
31
+ author_id INT DEFAULT NULL,
32
+ title VARCHAR(255) NOT NULL,
33
+ type VARCHAR(255) DEFAULT NULL,
34
+ body VARCHAR(3000) NOT NULL,
35
+ comments_count integer DEFAULT 0,
36
+ taggings_count integer DEFAULT 0,
37
+ PRIMARY KEY (id)
38
+ );
39
+ _SQL
40
+
41
+ execute <<_SQL
42
+ CREATE TABLE fk_test_has_pk (
43
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
44
+ PRIMARY KEY (id)
45
+ );
46
+ _SQL
47
+
48
+ execute <<_SQL
49
+ CREATE TABLE fk_test_has_fk (
50
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
51
+ fk_id integer NOT NULL,
52
+ PRIMARY KEY (id),
53
+ FOREIGN KEY (fk_id) REFERENCES fk_test_has_pk(id)
54
+ );
55
+ _SQL
56
+
57
+ execute <<_SQL
58
+ CREATE TABLE items (
59
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
60
+ name VARCHAR(255) DEFAULT NULL,
61
+ PRIMARY KEY (id)
62
+ );
63
+ _SQL
64
+
65
+ execute <<_SQL
66
+ CREATE TABLE circles (
67
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
68
+ PRIMARY KEY (id)
69
+ );
70
+ _SQL
71
+
72
+ execute <<_SQL
73
+ CREATE TABLE squares(
74
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
75
+ PRIMARY KEY (id)
76
+ );
77
+ _SQL
78
+
79
+ execute <<_SQL
80
+ CREATE TABLE triangles(
81
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
82
+ PRIMARY KEY (id)
83
+ );
84
+ _SQL
85
+
86
+ execute <<_SQL
87
+ CREATE TABLE non_poly_ones(
88
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
89
+ PRIMARY KEY (id)
90
+ );
91
+ _SQL
92
+
93
+ execute <<_SQL
94
+ CREATE TABLE non_poly_twos(
95
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
96
+ PRIMARY KEY (id)
97
+ );
98
+ _SQL
99
+
100
+ execute <<_SQL
101
+ CREATE TABLE paint_colors(
102
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
103
+ non_poly_one_id INT,
104
+ PRIMARY KEY (id)
105
+ );
106
+ _SQL
107
+
108
+ execute <<_SQL
109
+ CREATE TABLE paint_textures(
110
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
111
+ non_poly_two_id INT,
112
+ PRIMARY KEY (id)
113
+ );
114
+ _SQL
115
+
116
+ execute <<_SQL
117
+ CREATE TABLE topics (
118
+ id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
119
+ title VARCHAR(255) DEFAULT NULL,
120
+ author_name VARCHAR(255) DEFAULT NULL,
121
+ author_email_address VARCHAR(255) DEFAULT NULL,
122
+ written_on TIMESTAMP DEFAULT NULL,
123
+ bonus_time TIME DEFAULT NULL,
124
+ last_read DATE DEFAULT NULL,
125
+ content VARCHAR(3000),
126
+ approved SMALLINT DEFAULT 1,
127
+ replies_count INT DEFAULT 0,
128
+ parent_id INT DEFAULT NULL,
129
+ parent_title VARCHAR(255) DEFAULT NULL,
130
+ group VARCHAR(255) DEFAULT NULL,
131
+ type VARCHAR(255) DEFAULT NULL,
132
+ PRIMARY KEY (id)
133
+ );
134
+ _SQL
135
+
136
+ end
137
+ =end
@@ -0,0 +1,140 @@
1
+ =begin
2
+ ActiveRecord::Schema.define do
3
+
4
+ execute "DROP TABLE COMMENTS" rescue nil
5
+ execute "DROP TABLE POSTS" rescue nil
6
+ execute "DROP TABLE ITEMS" rescue nil
7
+ execute "DROP TABLE TOPICS" rescue nil
8
+ execute "DROP TABLE fk_test_has_fk" rescue nil
9
+ execute "DROP TABLE fk_test_has_pk" rescue nil
10
+ execute "DROP TABLE CIRCLES" rescue nil
11
+ execute "DROP TABLE SQUARES" rescue nil
12
+ execute "DROP TABLE TRIANGLES" rescue nil
13
+ execute "DROP TABLE NON_POLY_ONES" rescue nil
14
+ execute "DROP TABLE NON_POLY_TWOS" rescue nil
15
+ execute "DROP TABLE PAINT_COLORS" rescue nil
16
+ execute "DROP TABLE PAINT_TEXTURES" rescue nil
17
+
18
+ execute <<_SQL
19
+ CREATE TABLE comments (
20
+ id SERIAL(100),
21
+ post_id INT DEFAULT NULL,
22
+ type VARCHAR(255) DEFAULT NULL,
23
+ body LVARCHAR(3000) DEFAULT NULL
24
+ );
25
+ _SQL
26
+
27
+ execute <<_SQL
28
+ CREATE TABLE posts (
29
+ id SERIAL(100),
30
+ author_id INT DEFAULT NULL,
31
+ title VARCHAR(255) DEFAULT NULL,
32
+ type VARCHAR(255) DEFAULT NULL,
33
+ body LVARCHAR(3000) DEFAULT NULL,
34
+ comments_count INT DEFAULT 0,
35
+ taggings_count INT DEFAULT 0,
36
+ PRIMARY KEY (id)
37
+ );
38
+
39
+ _SQL
40
+
41
+ execute <<_SQL
42
+ CREATE TABLE items (
43
+ id SERIAL(100),
44
+ name VARCHAR(255) DEFAULT NULL,
45
+ PRIMARY KEY (id)
46
+ );
47
+
48
+ _SQL
49
+
50
+ execute <<_SQL
51
+ CREATE TABLE circles (
52
+ id SERIAL(100),
53
+ PRIMARY KEY (id)
54
+ );
55
+ _SQL
56
+
57
+ execute <<_SQL
58
+ CREATE TABLE squares(
59
+ id SERIAL(100),
60
+ PRIMARY KEY (id)
61
+ );
62
+ _SQL
63
+
64
+ execute <<_SQL
65
+ CREATE TABLE triangles(
66
+ id SERIAL(100),
67
+ PRIMARY KEY (id)
68
+ );
69
+ _SQL
70
+
71
+ execute <<_SQL
72
+ CREATE TABLE non_poly_ones(
73
+ id SERIAL(100),
74
+ PRIMARY KEY (id)
75
+ );
76
+ _SQL
77
+
78
+ execute <<_SQL
79
+ CREATE TABLE non_poly_twos(
80
+ id SERIAL(100),
81
+ PRIMARY KEY (id)
82
+ );
83
+ _SQL
84
+
85
+ execute <<_SQL
86
+ CREATE TABLE paint_colors(
87
+ id SERIAL(100),
88
+ non_poly_one_id INT,
89
+ PRIMARY KEY (id)
90
+ );
91
+ _SQL
92
+
93
+ execute <<_SQL
94
+ CREATE TABLE paint_textures(
95
+ id SERIAL(100),
96
+ non_poly_two_id INT,
97
+ PRIMARY KEY (id)
98
+ );
99
+ _SQL
100
+
101
+ execute <<_SQL
102
+ CREATE TABLE topics (
103
+ id SERIAL(100),
104
+ title VARCHAR(255) DEFAULT NULL,
105
+ author_name VARCHAR(255) DEFAULT NULL,
106
+ author_email_address VARCHAR(255) DEFAULT NULL,
107
+ written_on DATETIME YEAR TO FRACTION(5) DEFAULT NULL,
108
+ bonus_time DATETIME YEAR TO FRACTION(5) DEFAULT NULL,
109
+ --bonus_time DATETIME HOUR TO SECOND DEFAULT NULL,
110
+ last_read DATE DEFAULT NULL,
111
+ content LVARCHAR(3000),
112
+ approved SMALLINT DEFAULT 1,
113
+ replies_count INT DEFAULT 0,
114
+ parent_id INT DEFAULT NULL,
115
+ parent_title VARCHAR(255) DEFAULT NULL,
116
+ group VARCHAR(255) DEFAULT NULL,
117
+ type VARCHAR(50) DEFAULT NULL,
118
+ PRIMARY KEY (id)
119
+ );
120
+
121
+ _SQL
122
+
123
+ execute <<_SQL
124
+ CREATE TABLE fk_test_has_pk (
125
+ id INT NOT NULL PRIMARY KEY
126
+ );
127
+
128
+ _SQL
129
+
130
+ execute <<_SQL
131
+ CREATE TABLE fk_test_has_fk (
132
+ id INT NOT NULL PRIMARY KEY,
133
+ fk_id INT NOT NULL,
134
+ FOREIGN KEY (fk_id) REFERENCES fk_test_has_pk(id)
135
+ );
136
+
137
+ _SQL
138
+
139
+ end
140
+ =end