activerecord-oracle_enhanced-adapter 5.2.8 → 7.0.3

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 (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