activerecord-oracle_enhanced-adapter 7.0.3 → 7.1.0.beta1
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.
- checksums.yaml +4 -4
- data/History.md +24 -0
- data/README.md +0 -1
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +5 -0
- data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/database_limits.rb +2 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +26 -21
- data/lib/active_record/connection_adapters/oracle_enhanced/dbms_output.rb +15 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +9 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +3 -3
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +24 -15
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +3 -3
- data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +2 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +5 -0
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +22 -22
- data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +17 -17
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +71 -28
- data/lib/activerecord-oracle_enhanced-adapter.rb +8 -0
- data/lib/arel/visitors/oracle.rb +6 -3
- data/lib/arel/visitors/oracle12.rb +6 -5
- data/lib/arel/visitors/oracle_common.rb +46 -0
- data/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb +24 -5
- data/spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb +7 -2
- data/spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb +2 -2
- data/spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb +3 -0
- data/spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb +25 -15
- data/spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb +15 -18
- data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +14 -10
- data/spec/active_record/oracle_enhanced/type/boolean_spec.rb +2 -2
- data/spec/active_record/oracle_enhanced/type/character_string_spec.rb +24 -0
- data/spec/active_record/oracle_enhanced/type/dirty_spec.rb +4 -2
- data/spec/active_record/oracle_enhanced/type/integer_spec.rb +8 -0
- data/spec/active_record/oracle_enhanced/type/national_character_text_spec.rb +3 -3
- data/spec/active_record/oracle_enhanced/type/raw_spec.rb +15 -0
- data/spec/active_record/oracle_enhanced/type/text_spec.rb +18 -3
- data/spec/active_record/oracle_enhanced/type/timestamp_spec.rb +5 -1
- data/spec/spec_config.yaml.template +2 -2
- data/spec/spec_helper.rb +14 -3
- metadata +8 -6
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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: '
|
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: '
|
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
|
69
|
+
# used in ActiveRecord 2.x
|
68
70
|
def debug?
|
69
71
|
true
|
70
72
|
end
|
71
73
|
|
72
|
-
def
|
73
|
-
|
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,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-oracle_enhanced-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raimonds Simanovskis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-22 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: 7.
|
19
|
+
version: 7.1.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: 7.
|
26
|
+
version: 7.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ruby-plsql
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- lib/activerecord-oracle_enhanced-adapter.rb
|
103
103
|
- lib/arel/visitors/oracle.rb
|
104
104
|
- lib/arel/visitors/oracle12.rb
|
105
|
+
- lib/arel/visitors/oracle_common.rb
|
105
106
|
- spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
|
106
107
|
- spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
|
107
108
|
- spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
|
@@ -136,7 +137,8 @@ files:
|
|
136
137
|
homepage: http://github.com/rsim/oracle-enhanced
|
137
138
|
licenses:
|
138
139
|
- MIT
|
139
|
-
metadata:
|
140
|
+
metadata:
|
141
|
+
rubygems_mfa_required: 'true'
|
140
142
|
post_install_message:
|
141
143
|
rdoc_options: []
|
142
144
|
require_paths:
|
@@ -152,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
154
|
- !ruby/object:Gem::Version
|
153
155
|
version: 1.8.11
|
154
156
|
requirements: []
|
155
|
-
rubygems_version: 3.
|
157
|
+
rubygems_version: 3.5.16
|
156
158
|
signing_key:
|
157
159
|
specification_version: 4
|
158
160
|
summary: Oracle enhanced adapter for ActiveRecord
|