ibm_db 4.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  2. data/README +2 -2
  3. data/ext/Makefile +266 -0
  4. data/ext/Makefile.nt32.191 +1 -1
  5. data/ext/extconf.rb +38 -7
  6. data/ext/gil_release_version.h +3 -0
  7. data/ext/ibm_db.c +387 -395
  8. data/ext/ibm_db.o +0 -0
  9. data/ext/ibm_db.so +0 -0
  10. data/ext/mkmf.log +103 -0
  11. data/ext/ruby_ibm_db.h +1 -1
  12. data/ext/ruby_ibm_db_cli.c +23 -23
  13. data/ext/ruby_ibm_db_cli.h +5 -5
  14. data/ext/ruby_ibm_db_cli.o +0 -0
  15. data/ext/unicode_support_version.h +3 -0
  16. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +348 -207
  17. data/test/cases/attribute_decorators_test.rb +2 -1
  18. data/test/cases/cache_key_test.rb +2 -1
  19. data/test/cases/comment_test.rb +4 -2
  20. data/test/cases/date_time_precision_test.rb +2 -1
  21. data/test/cases/defaults_test.rb +2 -1
  22. data/test/cases/migration/foreign_key_test.rb +4 -2
  23. data/test/cases/migration/helper.rb +1 -1
  24. data/test/cases/migration/references_foreign_key_test.rb +10 -5
  25. data/test/cases/migrator_test.rb +2 -1
  26. data/test/cases/schema_dumper_test.rb +3 -3
  27. data/test/cases/time_precision_test.rb +2 -1
  28. data/test/cases/transactions_test.rb +3 -2
  29. data/test/config.yml +154 -154
  30. data/test/connections/native_ibm_db/connection.rb +44 -0
  31. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  32. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  33. data/test/fixtures/developers.yml +1 -1
  34. data/test/fixtures/pirates.yml +0 -3
  35. data/test/fixtures/randomly_named_a9.yml +7 -7
  36. data/test/ibm_db_test.rb +24 -24
  37. data/test/models/admin.rb +1 -1
  38. data/test/models/admin/account.rb +1 -1
  39. data/test/models/admin/randomly_named_c1.rb +7 -7
  40. data/test/models/binary.rb +1 -1
  41. data/test/models/event.rb +1 -1
  42. data/test/models/guid.rb +1 -1
  43. data/test/models/randomly_named_c1.rb +3 -3
  44. data/test/models/ship_part.rb +1 -1
  45. data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
  46. data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
  47. data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
  48. data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
  49. metadata +27 -13
  50. data/test/fixtures/author_addresses.original +0 -11
  51. 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