activerecord-oracle_enhanced-adapter 7.0.0 → 7.1.1

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 +4 -4
  2. data/History.md +64 -0
  3. data/README.md +11 -2
  4. data/VERSION +1 -1
  5. data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +5 -0
  6. data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +1 -1
  7. data/lib/active_record/connection_adapters/oracle_enhanced/database_limits.rb +2 -2
  8. data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +35 -27
  9. data/lib/active_record/connection_adapters/oracle_enhanced/dbms_output.rb +15 -2
  10. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +9 -2
  11. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +3 -3
  12. data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +24 -15
  13. data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +3 -3
  14. data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +7 -5
  15. data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +1 -1
  16. data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +5 -0
  17. data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +1 -1
  18. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +33 -24
  19. data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +17 -17
  20. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +73 -30
  21. data/lib/activerecord-oracle_enhanced-adapter.rb +8 -0
  22. data/lib/arel/visitors/oracle.rb +6 -3
  23. data/lib/arel/visitors/oracle12.rb +6 -5
  24. data/lib/arel/visitors/oracle_common.rb +46 -0
  25. data/spec/active_record/connection_adapters/oracle_enhanced/compatibility_spec.rb +36 -0
  26. data/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb +30 -5
  27. data/spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb +7 -2
  28. data/spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb +2 -2
  29. data/spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb +3 -0
  30. data/spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb +53 -15
  31. data/spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb +15 -18
  32. data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +14 -10
  33. data/spec/active_record/oracle_enhanced/type/boolean_spec.rb +2 -2
  34. data/spec/active_record/oracle_enhanced/type/character_string_spec.rb +24 -0
  35. data/spec/active_record/oracle_enhanced/type/custom_spec.rb +90 -0
  36. data/spec/active_record/oracle_enhanced/type/dirty_spec.rb +4 -2
  37. data/spec/active_record/oracle_enhanced/type/integer_spec.rb +8 -0
  38. data/spec/active_record/oracle_enhanced/type/national_character_text_spec.rb +3 -3
  39. data/spec/active_record/oracle_enhanced/type/raw_spec.rb +15 -0
  40. data/spec/active_record/oracle_enhanced/type/text_spec.rb +18 -3
  41. data/spec/active_record/oracle_enhanced/type/timestamp_spec.rb +5 -1
  42. data/spec/spec_config.yaml.template +2 -2
  43. data/spec/spec_helper.rb +14 -3
  44. metadata +26 -9
@@ -83,7 +83,7 @@ describe "OracleEnhancedAdapter" do
83
83
  expect(@logger.logged(:debug).last).to match(/select .* from all_constraints/im)
84
84
  end
85
85
 
86
- it "should get primary key from database at first time" do
86
+ it "should get primary key from database at second time without query" do
87
87
  expect(TestEmployee.connection.pk_and_sequence_for("test_employees")).to eq(["id", "test_employees_seq"])
88
88
  @logger.clear(:debug)
89
89
  expect(TestEmployee.connection.pk_and_sequence_for("test_employees")).to eq(["id", "test_employees_seq"])
@@ -129,6 +129,7 @@ describe "OracleEnhancedAdapter" do
129
129
  ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.default_tablespaces[:clob] = "UNUSED"
130
130
  @conn = ActiveRecord::Base.connection
131
131
  end
132
+
132
133
  after(:all) do
133
134
  ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.default_tablespaces = {}
134
135
  end
@@ -136,6 +137,7 @@ describe "OracleEnhancedAdapter" do
136
137
  after(:each) do
137
138
  @conn.drop_table :foos, if_exists: true
138
139
  end
140
+
139
141
  it "should create ok" do
140
142
  @conn.create_table :foos, temporary: true, id: false do |t|
141
143
  t.integer :id
@@ -441,7 +443,7 @@ describe "OracleEnhancedAdapter" do
441
443
  end
442
444
  end
443
445
  class ::TestSerializedColumn < ActiveRecord::Base
444
- serialize :serialized, Array
446
+ serialize :serialized, type: Array
445
447
  end
446
448
  end
447
449
 
@@ -470,12 +472,12 @@ describe "OracleEnhancedAdapter" do
470
472
  serialized_column.serialized << new_value
471
473
  expect(serialized_column.serialized).to eq([new_value])
472
474
  serialized_column.save
473
- expect(serialized_column.save!).to eq(true)
475
+ expect(serialized_column.save!).to be(true)
474
476
 
475
477
  serialized_column.reload
476
478
  expect(serialized_column.serialized).to eq([new_value])
477
479
  serialized_column.serialized = []
478
- expect(serialized_column.save!).to eq(true)
480
+ expect(serialized_column.save!).to be(true)
479
481
  end
480
482
  end
481
483
 
@@ -514,7 +516,7 @@ describe "OracleEnhancedAdapter" do
514
516
  binary_column_object = TestBinaryColumn.new
515
517
  binary_column_object.attachment = binary_value
516
518
 
517
- expect(binary_column_object.save!).to eq(true)
519
+ expect(binary_column_object.save!).to be(true)
518
520
  end
519
521
  end
520
522
 
@@ -622,8 +624,8 @@ describe "OracleEnhancedAdapter" do
622
624
  end
623
625
 
624
626
  it "should test table existence" do
625
- expect(@conn.table_exists?("TEST_POSTS")).to eq true
626
- expect(@conn.table_exists?("NOT_EXISTING")).to eq false
627
+ expect(@conn.table_exists?("TEST_POSTS")).to be true
628
+ expect(@conn.table_exists?("NOT_EXISTING")).to be false
627
629
  end
628
630
 
629
631
  it "should return array from indexes with bind usage" do
@@ -648,13 +650,13 @@ describe "OracleEnhancedAdapter" do
648
650
  expect(@logger.logged(:debug).last).to match(/\["table_name", "TEST_POSTS"\]/)
649
651
  end
650
652
 
651
- it "should not raise missing IN/OUT parameter like issue 1687 " do
653
+ it "should not raise missing IN/OUT parameter like issue 1678" do
652
654
  # "to_sql" enforces unprepared_statement including dictionary access SQLs
653
655
  expect { User.joins(:group).to_sql }.not_to raise_exception
654
656
  end
655
657
 
656
658
  it "should return false from temporary_table? with bind usage" do
657
- expect(@conn.temporary_table?("TEST_POSTS")).to eq false
659
+ expect(@conn.temporary_table?("TEST_POSTS")).to be false
658
660
  expect(@logger.logged(:debug).last).to match(/:table_name/)
659
661
  expect(@logger.logged(:debug).last).to match(/\["table_name", "TEST_POSTS"\]/)
660
662
  end
@@ -721,12 +723,14 @@ describe "OracleEnhancedAdapter" do
721
723
  end
722
724
  end
723
725
  end
726
+
724
727
  after(:all) do
725
728
  schema_define do
726
729
  drop_table :table_with_name_thats_just_ok,
727
730
  sequence_name: "suitably_short_seq" rescue nil
728
731
  end
729
732
  end
733
+
730
734
  it "should create table with custom sequence name" do
731
735
  expect(@conn.select_value("select suitably_short_seq.nextval from dual")).to eq(1)
732
736
  end
@@ -767,7 +771,7 @@ describe "OracleEnhancedAdapter" do
767
771
  expect(post.explain).to include("| TABLE ACCESS FULL| TEST_POSTS |")
768
772
  end
769
773
 
770
- it "should explain considers hints with /*+ */ " do
774
+ it "should explain considers hints with /*+ */" do
771
775
  post = TestPost.optimizer_hints("/*+ FULL (\"TEST_POSTS\") */")
772
776
  post = post.where(id: 1)
773
777
  expect(post.explain).to include("| TABLE ACCESS FULL| TEST_POSTS |")
@@ -151,10 +151,10 @@ describe "OracleEnhancedAdapter boolean type detection based on string column ty
151
151
  expect(@employee3.test_boolean_before_type_cast).to eq("N")
152
152
  create_employee3(test_boolean: nil)
153
153
  expect(@employee3.test_boolean.class).to eq(NilClass)
154
- expect(@employee3.test_boolean_before_type_cast).to eq(nil)
154
+ expect(@employee3.test_boolean_before_type_cast).to be_nil
155
155
  create_employee3(test_boolean: "")
156
156
  expect(@employee3.test_boolean.class).to eq(NilClass)
157
- expect(@employee3.test_boolean_before_type_cast).to eq(nil)
157
+ expect(@employee3.test_boolean_before_type_cast).to be_nil
158
158
  end
159
159
 
160
160
  it "should return string value from VARCHAR2 column with boolean column name but attribute is set to :string" do
@@ -24,6 +24,7 @@ describe "OracleEnhancedAdapter processing CHAR column" do
24
24
  end
25
25
 
26
26
  after(:each) do
27
+ TestItem.delete_all
27
28
  Object.send(:remove_const, "TestItem")
28
29
  ActiveRecord::Base.clear_cache!
29
30
  end
@@ -40,4 +41,27 @@ describe "OracleEnhancedAdapter processing CHAR column" do
40
41
  item_reloaded = TestItem.first
41
42
  expect(item_reloaded.padded).to eq(str)
42
43
  end
44
+
45
+ it "should support case sensitive matching" do
46
+ TestItem.create!(
47
+ padded: "First",
48
+ )
49
+ TestItem.create!(
50
+ padded: "first",
51
+ )
52
+
53
+ expect(TestItem.where(TestItem.arel_table[:padded].matches("first%", "\\", true))).to have_attributes(count: 1)
54
+ end
55
+
56
+ it "should support case insensitive matching" do
57
+ TestItem.create!(
58
+ padded: "First",
59
+ )
60
+ TestItem.create!(
61
+ padded: "first",
62
+ )
63
+
64
+ expect(TestItem.where(TestItem.arel_table[:padded].matches("first%", "\\", false))).to have_attributes(count: 2)
65
+ expect(TestItem.where(TestItem.arel_table[:padded].matches("first%"))).to have_attributes(count: 2)
66
+ end
43
67
  end
@@ -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
@@ -113,7 +113,7 @@ describe "OracleEnhancedAdapter dirty object tracking" do
113
113
 
114
114
  it "should not update unchanged CLOBs" do
115
115
  @conn = nil
116
- @connection = nil
116
+ @raw_connection = nil
117
117
  @employee = TestEmployee.create!(
118
118
  comments: "initial"
119
119
  )
@@ -121,10 +121,12 @@ describe "OracleEnhancedAdapter dirty object tracking" do
121
121
  @employee.reload
122
122
  expect(@employee.comments).to eq("initial")
123
123
 
124
- oci_conn = @conn.instance_variable_get("@connection")
124
+ oci_conn = @conn.instance_variable_get("@raw_connection")
125
125
  class << oci_conn
126
126
  def write_lob(lob, value, is_binary = false); raise "don't do this'"; end
127
127
  end
128
+ @employee.comments = +"initial"
129
+ expect(@employee.comments_changed?).to be false
128
130
  expect { @employee.save! }.not_to raise_error
129
131
  class << oci_conn
130
132
  remove_method :write_lob
@@ -87,5 +87,13 @@ describe "OracleEnhancedAdapter integer type detection based on attribute settin
87
87
  create_employee2
88
88
  expect(@employee2.is_manager).to be_a(Integer)
89
89
  end
90
+
91
+ it "should return Integer value from NUMBER(1) column if emulate_booleans is set to false" do
92
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_booleans = false
93
+ ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.clear_type_map!
94
+ ActiveRecord::Base.clear_cache!
95
+ create_employee2
96
+ expect(@employee2.is_manager).to be_a(Integer)
97
+ end
90
98
  end
91
99
  end
@@ -79,7 +79,7 @@ describe "OracleEnhancedAdapter handling of NCLOB columns" do
79
79
  @employee.reload
80
80
  expect(@employee.comments).to eq(@nclob_data)
81
81
  @employee.comments = @nclob_data2
82
- expect(@employee.save).to eq(true)
82
+ expect(@employee.save).to be(true)
83
83
  @employee.reload
84
84
  expect(@employee.comments).to eq(@nclob_data)
85
85
  end
@@ -90,12 +90,12 @@ describe "OracleEnhancedAdapter handling of NCLOB columns" do
90
90
  comments: nil
91
91
  )
92
92
  expect(@employee.comments).to be_nil
93
- expect(@employee.save).to eq(true)
93
+ expect(@employee.save).to be(true)
94
94
  expect(@employee).to be_valid
95
95
  @employee.reload
96
96
  expect(@employee.comments).to be_nil
97
97
  @employee.comments = {}
98
- expect(@employee.save).to eq(true)
98
+ expect(@employee.save).to be(true)
99
99
  @employee.reload
100
100
  # should not set readonly
101
101
  expect(@employee.comments).to be_nil
@@ -119,4 +119,19 @@ describe "OracleEnhancedAdapter handling of RAW columns" do
119
119
  @employee.reload
120
120
  expect(@employee.binary_data).to eq(@binary_data)
121
121
  end
122
+
123
+ it "should allow equality on select" do
124
+ TestEmployee.delete_all
125
+ TestEmployee.create!(
126
+ first_name: "First",
127
+ last_name: "Last",
128
+ binary_data: @binary_data,
129
+ )
130
+ TestEmployee.create!(
131
+ first_name: "First1",
132
+ last_name: "Last1",
133
+ binary_data: @binary_data2,
134
+ )
135
+ expect(TestEmployee.where(binary_data: @binary_data)).to have_attributes(count: 1)
136
+ end
122
137
  end
@@ -78,7 +78,7 @@ describe "OracleEnhancedAdapter handling of CLOB columns" do
78
78
  @employee.reload
79
79
  expect(@employee.comments).to eq("initial")
80
80
  @employee.comments = "changed"
81
- expect(@employee.save).to eq(true)
81
+ expect(@employee.save).to be(true)
82
82
  @employee.reload
83
83
  expect(@employee.comments).to eq("initial")
84
84
  end
@@ -89,12 +89,12 @@ describe "OracleEnhancedAdapter handling of CLOB columns" do
89
89
  comments: nil
90
90
  )
91
91
  expect(@employee.comments).to be_nil
92
- expect(@employee.save).to eq(true)
92
+ expect(@employee.save).to be(true)
93
93
  expect(@employee).to be_valid
94
94
  @employee.reload
95
95
  expect(@employee.comments).to be_nil
96
96
  @employee.comments = {}
97
- expect(@employee.save).to eq(true)
97
+ expect(@employee.save).to be(true)
98
98
  @employee.reload
99
99
  # should not set readonly
100
100
  expect(@employee.comments).to be_nil
@@ -226,4 +226,19 @@ describe "OracleEnhancedAdapter handling of CLOB columns" do
226
226
  @employee.reload
227
227
  expect(@employee.comments).to eq(length: { is: 2 })
228
228
  end
229
+
230
+ it "should allow equality on select" do
231
+ search_data = "text search CLOB"
232
+ Test2Employee.create!(
233
+ first_name: "First",
234
+ last_name: "Last",
235
+ comments: search_data,
236
+ )
237
+ Test2Employee.create!(
238
+ first_name: "First1",
239
+ last_name: "Last1",
240
+ comments: "other data",
241
+ )
242
+ expect(Test2Employee.where(comments: search_data)).to have_attributes(count: 1)
243
+ end
229
244
  end
@@ -4,6 +4,10 @@ describe "OracleEnhancedAdapter timestamp with timezone support" do
4
4
  include SchemaSpecHelper
5
5
 
6
6
  before(:all) do
7
+ skip if ENV["DATABASE_SERVER_AND_CLIENT_VERSION_DO_NOT_MATCH"] == "true"
8
+ if ENV["DATABASE_VERSION"] == "11.2.0.2" && ENV["ORACLE_HOME"] == "/usr/lib/oracle/21/client64"
9
+ skip
10
+ end
7
11
  ActiveRecord.default_timezone = :local
8
12
  ActiveRecord::Base.establish_connection(CONNECTION_WITH_TIMEZONE_PARAMS)
9
13
  @conn = ActiveRecord::Base.connection
@@ -27,7 +31,7 @@ describe "OracleEnhancedAdapter timestamp with timezone support" do
27
31
  end
28
32
 
29
33
  after(:all) do
30
- @conn.drop_table :test_employees, if_exists: true
34
+ @conn.drop_table :test_employees, if_exists: true rescue nil
31
35
  ActiveRecord.default_timezone = :utc
32
36
  end
33
37
 
@@ -1,11 +1,11 @@
1
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
- name: 'orcl'
4
+ name: 'FREEPDB1'
5
5
  host: '127.0.0.1'
6
6
  port: 1521
7
7
  user: 'oracle_enhanced'
8
8
  password: 'oracle_enhanced'
9
- sys_password: 'admin'
9
+ sys_password: 'oracle'
10
10
  non_default_tablespace: 'SYSTEM'
11
11
  timezone: 'Europe/Riga'
data/spec/spec_helper.rb CHANGED
@@ -57,6 +57,8 @@ module LoggerSpecHelper
57
57
  end
58
58
 
59
59
  class MockLogger
60
+ LEVELS = %i[debug info warn error fatal unknown]
61
+
60
62
  attr_reader :flush_count
61
63
 
62
64
  def initialize
@@ -64,13 +66,22 @@ module LoggerSpecHelper
64
66
  @logged = Hash.new { |h, k| h[k] = [] }
65
67
  end
66
68
 
67
- # used in AtiveRecord 2.x
69
+ # used in ActiveRecord 2.x
68
70
  def debug?
69
71
  true
70
72
  end
71
73
 
72
- def method_missing(level, message)
73
- @logged[level] << message
74
+ def level
75
+ 0
76
+ end
77
+
78
+ def method_missing(*args)
79
+ if LEVELS.include?(args[0])
80
+ level, message = args
81
+ @logged[level] << message
82
+ else
83
+ super
84
+ end
74
85
  end
75
86
 
76
87
  def logged(level)
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-oracle_enhanced-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-12-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 7.0.0
18
+ version: 7.1.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: 7.0.0
25
+ version: 7.1.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: ruby-plsql
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +37,20 @@ dependencies:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
39
  version: 0.6.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: ruby-oci8
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
41
54
  description: |
42
55
  Oracle "enhanced" ActiveRecord adapter contains useful additional methods for working with new and legacy Oracle databases.
43
56
  This adapter is superset of original ActiveRecord Oracle adapter.
@@ -88,7 +101,9 @@ files:
88
101
  - lib/activerecord-oracle_enhanced-adapter.rb
89
102
  - lib/arel/visitors/oracle.rb
90
103
  - lib/arel/visitors/oracle12.rb
104
+ - lib/arel/visitors/oracle_common.rb
91
105
  - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
106
+ - spec/active_record/connection_adapters/oracle_enhanced/compatibility_spec.rb
92
107
  - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
93
108
  - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
94
109
  - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
@@ -103,6 +118,7 @@ files:
103
118
  - spec/active_record/oracle_enhanced/type/binary_spec.rb
104
119
  - spec/active_record/oracle_enhanced/type/boolean_spec.rb
105
120
  - spec/active_record/oracle_enhanced/type/character_string_spec.rb
121
+ - spec/active_record/oracle_enhanced/type/custom_spec.rb
106
122
  - spec/active_record/oracle_enhanced/type/decimal_spec.rb
107
123
  - spec/active_record/oracle_enhanced/type/dirty_spec.rb
108
124
  - spec/active_record/oracle_enhanced/type/float_spec.rb
@@ -121,8 +137,8 @@ files:
121
137
  homepage: http://github.com/rsim/oracle-enhanced
122
138
  licenses:
123
139
  - MIT
124
- metadata: {}
125
- post_install_message:
140
+ metadata:
141
+ rubygems_mfa_required: 'true'
126
142
  rdoc_options: []
127
143
  require_paths:
128
144
  - lib
@@ -137,12 +153,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
153
  - !ruby/object:Gem::Version
138
154
  version: 1.8.11
139
155
  requirements: []
140
- rubygems_version: 3.2.32
141
- signing_key:
156
+ rubygems_version: 3.6.7
142
157
  specification_version: 4
143
158
  summary: Oracle enhanced adapter for ActiveRecord
144
159
  test_files:
145
160
  - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
161
+ - spec/active_record/connection_adapters/oracle_enhanced/compatibility_spec.rb
146
162
  - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
147
163
  - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
148
164
  - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
@@ -157,6 +173,7 @@ test_files:
157
173
  - spec/active_record/oracle_enhanced/type/binary_spec.rb
158
174
  - spec/active_record/oracle_enhanced/type/boolean_spec.rb
159
175
  - spec/active_record/oracle_enhanced/type/character_string_spec.rb
176
+ - spec/active_record/oracle_enhanced/type/custom_spec.rb
160
177
  - spec/active_record/oracle_enhanced/type/decimal_spec.rb
161
178
  - spec/active_record/oracle_enhanced/type/dirty_spec.rb
162
179
  - spec/active_record/oracle_enhanced/type/float_spec.rb