activerecord-oracle_enhanced-adapter 5.2.8 → 7.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +390 -21
  3. data/README.md +35 -8
  4. data/VERSION +1 -1
  5. data/lib/active_record/connection_adapters/emulation/oracle_adapter.rb +1 -1
  6. data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +3 -3
  7. data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +42 -37
  8. data/lib/active_record/connection_adapters/oracle_enhanced/context_index.rb +59 -60
  9. data/lib/active_record/connection_adapters/oracle_enhanced/database_limits.rb +5 -10
  10. data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +86 -81
  11. data/lib/active_record/connection_adapters/oracle_enhanced/database_tasks.rb +9 -10
  12. data/lib/active_record/connection_adapters/oracle_enhanced/dbms_output.rb +1 -2
  13. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +37 -16
  14. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +1 -1
  15. data/lib/active_record/connection_adapters/oracle_enhanced/lob.rb +5 -6
  16. data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +58 -49
  17. data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +1 -1
  18. data/lib/active_record/connection_adapters/oracle_enhanced/procedures.rb +6 -7
  19. data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +75 -51
  20. data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +13 -14
  21. data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +14 -4
  22. data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +27 -24
  23. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +156 -155
  24. data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +103 -90
  25. data/lib/active_record/connection_adapters/oracle_enhanced/type_metadata.rb +3 -2
  26. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +261 -161
  27. data/lib/active_record/type/oracle_enhanced/boolean.rb +0 -1
  28. data/lib/active_record/type/oracle_enhanced/character_string.rb +36 -0
  29. data/lib/active_record/type/oracle_enhanced/integer.rb +0 -1
  30. data/lib/arel/visitors/oracle.rb +221 -0
  31. data/lib/arel/visitors/oracle12.rb +128 -0
  32. data/spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb +0 -2
  33. data/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb +78 -26
  34. data/spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb +7 -15
  35. data/spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb +5 -0
  36. data/spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb +17 -17
  37. data/spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb +7 -10
  38. data/spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb +0 -15
  39. data/spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb +33 -36
  40. data/spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb +77 -258
  41. data/spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb +38 -39
  42. data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +273 -85
  43. data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +7 -8
  44. data/spec/active_record/oracle_enhanced/type/boolean_spec.rb +2 -4
  45. data/spec/active_record/oracle_enhanced/type/character_string_spec.rb +43 -0
  46. data/spec/active_record/oracle_enhanced/type/custom_spec.rb +90 -0
  47. data/spec/active_record/oracle_enhanced/type/decimal_spec.rb +56 -0
  48. data/spec/active_record/oracle_enhanced/type/dirty_spec.rb +1 -1
  49. data/spec/active_record/oracle_enhanced/type/integer_spec.rb +2 -2
  50. data/spec/active_record/oracle_enhanced/type/json_spec.rb +0 -1
  51. data/spec/active_record/oracle_enhanced/type/national_character_string_spec.rb +6 -5
  52. data/spec/active_record/oracle_enhanced/type/timestamp_spec.rb +2 -4
  53. data/spec/spec_config.yaml.template +2 -2
  54. data/spec/spec_helper.rb +13 -2
  55. metadata +52 -30
  56. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb +0 -28
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "base64"
4
+
5
+ describe "OracleEnhancedAdapter custom types handling" do
6
+ include SchemaSpecHelper
7
+
8
+ before(:all) do
9
+ ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
10
+ schema_define do
11
+ create_table :test_employees, force: true do |t|
12
+ t.string :first_name, limit: 20
13
+ t.string :last_name, limit: 25
14
+ t.text :signature
15
+ end
16
+ end
17
+
18
+ class TestEmployee < ActiveRecord::Base
19
+ class AttributeSignature < ActiveRecord::Type::Text
20
+ def cast(value)
21
+ case value
22
+ when Signature
23
+ value
24
+ when nil
25
+ nil
26
+ else
27
+ Signature.new(Base64.decode64 value)
28
+ end
29
+ end
30
+
31
+ def serialize(value)
32
+ Base64.encode64 value.raw
33
+ end
34
+
35
+ def changed_in_place?(raw_old_value, new_value)
36
+ new_value != cast(raw_old_value)
37
+ end
38
+ end
39
+
40
+ class Signature
41
+ attr_reader :raw
42
+
43
+ def initialize(raw_value)
44
+ @raw = raw_value
45
+ end
46
+
47
+ def to_s
48
+ "Signature nice string #{raw[0..5]}"
49
+ end
50
+
51
+ def ==(object)
52
+ raw == object&.raw
53
+ end
54
+ alias eql? ==
55
+ end
56
+
57
+ attribute :signature, AttributeSignature.new
58
+ end
59
+ end
60
+
61
+ after(:all) do
62
+ schema_define do
63
+ drop_table :test_employees
64
+ end
65
+ Object.send(:remove_const, "TestEmployee")
66
+ ActiveRecord::Base.clear_cache!
67
+ end
68
+
69
+ it "should serialize LOBs when creating a record" do
70
+ raw_signature = "peter'ssignature"
71
+ signature = TestEmployee::Signature.new(raw_signature)
72
+ @employee = TestEmployee.create!(first_name: "Peter", last_name: "Doe", signature: signature)
73
+ @employee.reload
74
+ expect(@employee.signature).to eql(signature)
75
+ expect(@employee.signature).to_not be(signature)
76
+ expect(TestEmployee.first.read_attribute_before_type_cast(:signature)).to eq(Base64.encode64 raw_signature)
77
+ end
78
+
79
+ it "should serialize LOBs when updating a record" do
80
+ raw_signature = "peter'ssignature"
81
+ signature = TestEmployee::Signature.new(raw_signature)
82
+ @employee = TestEmployee.create!(first_name: "Peter", last_name: "Doe", signature: TestEmployee::Signature.new("old signature"))
83
+ @employee.signature = signature
84
+ @employee.save!
85
+ @employee.reload
86
+ expect(@employee.signature).to eql(signature)
87
+ expect(@employee.signature).to_not be(signature)
88
+ expect(TestEmployee.first.read_attribute_before_type_cast(:signature)).to eq(Base64.encode64 raw_signature)
89
+ end
90
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe "OracleEnhancedAdapter handling of DECIMAL columns" do
4
+ include SchemaSpecHelper
5
+
6
+ before(:all) do
7
+ ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
8
+ @conn = ActiveRecord::Base.connection
9
+ schema_define do
10
+ create_table :test2_employees, force: true do |t|
11
+ t.string :first_name, limit: 20
12
+ t.string :last_name, limit: 25
13
+ t.string :email, limit: 25
14
+ t.string :phone_number, limit: 25
15
+ t.date :hire_date
16
+ t.integer :job_id
17
+ t.integer :salary
18
+ t.decimal :commission_pct, scale: 2, precision: 2
19
+ t.decimal :hourly_rate
20
+ t.integer :manager_id, limit: 6
21
+ t.integer :is_manager, limit: 1
22
+ t.decimal :department_id, scale: 0, precision: 4
23
+ t.timestamps
24
+ end
25
+ end
26
+ class ::Test2Employee < ActiveRecord::Base
27
+ end
28
+ end
29
+
30
+ after(:all) do
31
+ Object.send(:remove_const, "Test2Employee")
32
+ @conn.drop_table :test2_employees, if_exists: true
33
+ end
34
+
35
+ it "should set DECIMAL column type as decimal" do
36
+ columns = @conn.columns("test2_employees")
37
+ column = columns.detect { |c| c.name == "hourly_rate" }
38
+ expect(column.type).to eq(:decimal)
39
+ end
40
+
41
+ it "should DECIMAL column type returns an exact value" do
42
+ employee = Test2Employee.create(hourly_rate: 4.40125)
43
+
44
+ employee.reload
45
+
46
+ expect(employee.hourly_rate).to eq(4.40125)
47
+ end
48
+
49
+ it "should DECIMAL column type rounds if scale is specified and value exceeds scale" do
50
+ employee = Test2Employee.create(commission_pct: 0.1575)
51
+
52
+ employee.reload
53
+
54
+ expect(employee.commission_pct).to eq(0.16)
55
+ end
56
+ end
@@ -123,7 +123,7 @@ describe "OracleEnhancedAdapter dirty object tracking" do
123
123
 
124
124
  oci_conn = @conn.instance_variable_get("@connection")
125
125
  class << oci_conn
126
- def write_lob(lob, value, is_binary = false); raise "don't do this'"; end
126
+ def write_lob(lob, value, is_binary = false); raise "don't do this'"; end
127
127
  end
128
128
  expect { @employee.save! }.not_to raise_error
129
129
  class << oci_conn
@@ -5,7 +5,7 @@ describe "OracleEnhancedAdapter integer type detection based on attribute settin
5
5
  ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
6
6
  @conn = ActiveRecord::Base.connection
7
7
  @conn.execute "DROP TABLE test2_employees" rescue nil
8
- @conn.execute <<-SQL
8
+ @conn.execute <<~SQL
9
9
  CREATE TABLE test2_employees (
10
10
  id NUMBER PRIMARY KEY,
11
11
  first_name VARCHAR2(20),
@@ -23,7 +23,7 @@ describe "OracleEnhancedAdapter integer type detection based on attribute settin
23
23
  )
24
24
  SQL
25
25
  @conn.execute "DROP SEQUENCE test2_employees_seq" rescue nil
26
- @conn.execute <<-SQL
26
+ @conn.execute <<~SQL
27
27
  CREATE SEQUENCE test2_employees_seq MINVALUE 1
28
28
  INCREMENT BY 1 START WITH 10040 CACHE 20 NOORDER NOCYCLE
29
29
  SQL
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  describe "OracleEnhancedAdapter attribute API support for JSON type" do
4
-
5
4
  include SchemaSpecHelper
6
5
 
7
6
  before(:all) do
@@ -4,7 +4,7 @@ describe "OracleEnhancedAdapter quoting of NCHAR and NVARCHAR2 columns" do
4
4
  before(:all) do
5
5
  ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
6
6
  @conn = ActiveRecord::Base.connection
7
- @conn.execute <<-SQL
7
+ @conn.execute <<~SQL
8
8
  CREATE TABLE test_items (
9
9
  id NUMBER(6,0) PRIMARY KEY,
10
10
  nchar_column NCHAR(20),
@@ -35,9 +35,11 @@ describe "OracleEnhancedAdapter quoting of NCHAR and NVARCHAR2 columns" do
35
35
  columns = @conn.columns("test_items")
36
36
  %w(nchar_column nvarchar2_column char_column varchar2_column).each do |col|
37
37
  column = columns.detect { |c| c.name == col }
38
- value = @conn.type_cast_from_column(column, "abc")
38
+ type = @conn.lookup_cast_type_from_column(column)
39
+ value = type.serialize("abc")
39
40
  expect(@conn.quote(value)).to eq(column.sql_type[0, 1] == "N" ? "N'abc'" : "'abc'")
40
- nilvalue = @conn.type_cast_from_column(column, nil)
41
+ type = @conn.lookup_cast_type_from_column(column)
42
+ nilvalue = type.serialize(nil)
41
43
  expect(@conn.quote(nilvalue)).to eq("NULL")
42
44
  end
43
45
  end
@@ -48,8 +50,7 @@ describe "OracleEnhancedAdapter quoting of NCHAR and NVARCHAR2 columns" do
48
50
  nchar_column: nchar_data,
49
51
  nvarchar2_column: nchar_data
50
52
  ).reload
51
- expect(item.nchar_column).to eq(nchar_data + " " * 17)
53
+ expect(item.nchar_column).to eq(nchar_data)
52
54
  expect(item.nvarchar2_column).to eq(nchar_data)
53
55
  end
54
-
55
56
  end
@@ -4,7 +4,7 @@ describe "OracleEnhancedAdapter timestamp with timezone support" do
4
4
  include SchemaSpecHelper
5
5
 
6
6
  before(:all) do
7
- ActiveRecord::Base.default_timezone = :local
7
+ ActiveRecord.default_timezone = :local
8
8
  ActiveRecord::Base.establish_connection(CONNECTION_WITH_TIMEZONE_PARAMS)
9
9
  @conn = ActiveRecord::Base.connection
10
10
  schema_define do
@@ -28,7 +28,7 @@ describe "OracleEnhancedAdapter timestamp with timezone support" do
28
28
 
29
29
  after(:all) do
30
30
  @conn.drop_table :test_employees, if_exists: true
31
- ActiveRecord::Base.default_timezone = :utc
31
+ ActiveRecord.default_timezone = :utc
32
32
  end
33
33
 
34
34
  describe "/ TIMESTAMP WITH TIME ZONE values from ActiveRecord model" do
@@ -69,7 +69,5 @@ describe "OracleEnhancedAdapter timestamp with timezone support" do
69
69
  expect(@employee.send(c).to_f).to eq(@now.to_f)
70
70
  end
71
71
  end
72
-
73
72
  end
74
-
75
73
  end
@@ -1,4 +1,4 @@
1
- # copy this file to spec/config.yaml and set appropriate values
1
+ # copy this file to spec/spec_config.yaml and set appropriate values
2
2
  # you can also use environment variables, see spec_helper.rb
3
3
  database:
4
4
  name: 'orcl'
@@ -8,4 +8,4 @@ database:
8
8
  password: 'oracle_enhanced'
9
9
  sys_password: 'admin'
10
10
  non_default_tablespace: 'SYSTEM'
11
- timezone: 'Europe/Riga'
11
+ timezone: 'Europe/Riga'
data/spec/spec_helper.rb CHANGED
@@ -17,8 +17,8 @@ end
17
17
 
18
18
  require "rspec"
19
19
 
20
- if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
21
- puts "==> Running specs with MRI version #{RUBY_VERSION}"
20
+ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby" || RUBY_ENGINE == "truffleruby"
21
+ puts "==> Running specs with ruby version #{RUBY_VERSION}"
22
22
  require "oci8"
23
23
  elsif RUBY_ENGINE == "jruby"
24
24
  puts "==> Running specs with JRuby version #{JRUBY_VERSION}"
@@ -105,6 +105,8 @@ module LoggerSpecHelper
105
105
  end
106
106
  end
107
107
 
108
+ ActiveRecord::LogSubscriber::IGNORE_PAYLOAD_NAMES.replace(["EXPLAIN"])
109
+
108
110
  module SchemaSpecHelper
109
111
  def schema_define(&block)
110
112
  ActiveRecord::Schema.define do
@@ -183,6 +185,15 @@ SYSTEM_CONNECTION_PARAMS = {
183
185
  password: DATABASE_SYS_PASSWORD
184
186
  }
185
187
 
188
+ SERVICE_NAME_CONNECTION_PARAMS = {
189
+ adapter: "oracle_enhanced",
190
+ database: "/#{DATABASE_NAME}",
191
+ host: DATABASE_HOST,
192
+ port: DATABASE_PORT,
193
+ username: DATABASE_USER,
194
+ password: DATABASE_PASSWORD
195
+ }
196
+
186
197
  DATABASE_NON_DEFAULT_TABLESPACE = config["database"]["non_default_tablespace"] || ENV["DATABASE_NON_DEFAULT_TABLESPACE"] || "SYSTEM"
187
198
 
188
199
  # set default time zone in TZ environment variable
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-oracle_enhanced-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.8
4
+ version: 7.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-25 00:00:00.000000000 Z
11
+ date: 2023-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.0
19
+ version: 7.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.0
26
+ version: 7.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ruby-plsql
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby-oci8
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: |
42
56
  Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
43
57
  This adapter is superset of original ActiveRecord Oracle adapter.
@@ -70,12 +84,12 @@ files:
70
84
  - lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb
71
85
  - lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb
72
86
  - lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb
73
- - lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb
74
87
  - lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb
75
88
  - lib/active_record/connection_adapters/oracle_enhanced/type_metadata.rb
76
89
  - lib/active_record/connection_adapters/oracle_enhanced/version.rb
77
90
  - lib/active_record/connection_adapters/oracle_enhanced_adapter.rb
78
91
  - lib/active_record/type/oracle_enhanced/boolean.rb
92
+ - lib/active_record/type/oracle_enhanced/character_string.rb
79
93
  - lib/active_record/type/oracle_enhanced/integer.rb
80
94
  - lib/active_record/type/oracle_enhanced/json.rb
81
95
  - lib/active_record/type/oracle_enhanced/national_character_string.rb
@@ -86,6 +100,8 @@ files:
86
100
  - lib/active_record/type/oracle_enhanced/timestampltz.rb
87
101
  - lib/active_record/type/oracle_enhanced/timestamptz.rb
88
102
  - lib/activerecord-oracle_enhanced-adapter.rb
103
+ - lib/arel/visitors/oracle.rb
104
+ - lib/arel/visitors/oracle12.rb
89
105
  - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
90
106
  - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
91
107
  - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
@@ -100,6 +116,9 @@ files:
100
116
  - spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
101
117
  - spec/active_record/oracle_enhanced/type/binary_spec.rb
102
118
  - spec/active_record/oracle_enhanced/type/boolean_spec.rb
119
+ - spec/active_record/oracle_enhanced/type/character_string_spec.rb
120
+ - spec/active_record/oracle_enhanced/type/custom_spec.rb
121
+ - spec/active_record/oracle_enhanced/type/decimal_spec.rb
103
122
  - spec/active_record/oracle_enhanced/type/dirty_spec.rb
104
123
  - spec/active_record/oracle_enhanced/type/float_spec.rb
105
124
  - spec/active_record/oracle_enhanced/type/integer_spec.rb
@@ -118,7 +137,7 @@ homepage: http://github.com/rsim/oracle-enhanced
118
137
  licenses:
119
138
  - MIT
120
139
  metadata: {}
121
- post_install_message:
140
+ post_install_message:
122
141
  rdoc_options: []
123
142
  require_paths:
124
143
  - lib
@@ -126,43 +145,46 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
145
  requirements:
127
146
  - - ">="
128
147
  - !ruby/object:Gem::Version
129
- version: 2.2.2
148
+ version: 2.7.0
130
149
  required_rubygems_version: !ruby/object:Gem::Requirement
131
150
  requirements:
132
151
  - - ">="
133
152
  - !ruby/object:Gem::Version
134
153
  version: 1.8.11
135
154
  requirements: []
136
- rubygems_version: 3.1.2
137
- signing_key:
155
+ rubygems_version: 3.4.10
156
+ signing_key:
138
157
  specification_version: 4
139
158
  summary: Oracle enhanced adapter for ActiveRecord
140
159
  test_files:
141
- - spec/spec_helper.rb
142
- - spec/active_record/oracle_enhanced/type/integer_spec.rb
143
- - spec/active_record/oracle_enhanced/type/raw_spec.rb
144
- - spec/active_record/oracle_enhanced/type/float_spec.rb
145
- - spec/active_record/oracle_enhanced/type/boolean_spec.rb
146
- - spec/active_record/oracle_enhanced/type/dirty_spec.rb
147
- - spec/active_record/oracle_enhanced/type/binary_spec.rb
148
- - spec/active_record/oracle_enhanced/type/timestamp_spec.rb
149
- - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
150
- - spec/active_record/oracle_enhanced/type/json_spec.rb
151
- - spec/active_record/oracle_enhanced/type/text_spec.rb
152
- - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
160
+ - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
161
+ - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
153
162
  - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
154
- - spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb
163
+ - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
155
164
  - spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb
156
- - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
157
165
  - spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb
158
- - spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb
159
- - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
160
- - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
166
+ - spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb
167
+ - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
161
168
  - spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb
162
- - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
169
+ - spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb
163
170
  - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
164
171
  - spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
172
+ - spec/active_record/oracle_enhanced/type/binary_spec.rb
173
+ - spec/active_record/oracle_enhanced/type/boolean_spec.rb
174
+ - spec/active_record/oracle_enhanced/type/character_string_spec.rb
175
+ - spec/active_record/oracle_enhanced/type/custom_spec.rb
176
+ - spec/active_record/oracle_enhanced/type/decimal_spec.rb
177
+ - spec/active_record/oracle_enhanced/type/dirty_spec.rb
178
+ - spec/active_record/oracle_enhanced/type/float_spec.rb
179
+ - spec/active_record/oracle_enhanced/type/integer_spec.rb
180
+ - spec/active_record/oracle_enhanced/type/json_spec.rb
181
+ - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
182
+ - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
183
+ - spec/active_record/oracle_enhanced/type/raw_spec.rb
184
+ - spec/active_record/oracle_enhanced/type/text_spec.rb
185
+ - spec/active_record/oracle_enhanced/type/timestamp_spec.rb
186
+ - spec/spec_config.yaml.template
187
+ - spec/spec_helper.rb
188
+ - spec/support/alter_system_set_open_cursors.sql
165
189
  - spec/support/alter_system_user_password.sql
166
190
  - spec/support/create_oracle_enhanced_users.sql
167
- - spec/support/alter_system_set_open_cursors.sql
168
- - spec/spec_config.yaml.template
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveRecord
4
- module ConnectionAdapters
5
- module OracleEnhanced
6
- module SchemaStatementsExt
7
- # Create primary key trigger (so that you can skip primary key value in INSERT statement).
8
- # By default trigger name will be "table_name_pkt", you can override the name with
9
- # :trigger_name option (but it is not recommended to override it as then this trigger will
10
- # not be detected by ActiveRecord model and it will still do prefetching of sequence value).
11
- #
12
- # add_primary_key_trigger :users
13
- #
14
- # You can also create primary key trigger using +create_table+ with :primary_key_trigger
15
- # option:
16
- #
17
- # create_table :users, :primary_key_trigger => true do |t|
18
- # # ...
19
- # end
20
- #
21
- def add_primary_key_trigger(table_name, options = {})
22
- # call the same private method that is used for create_table :primary_key_trigger => true
23
- create_primary_key_trigger(table_name, options)
24
- end
25
- end
26
- end
27
- end
28
- end