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.
- checksums.yaml +4 -4
- data/History.md +390 -21
- data/README.md +35 -8
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/emulation/oracle_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/column.rb +3 -3
- data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +42 -37
- data/lib/active_record/connection_adapters/oracle_enhanced/context_index.rb +59 -60
- data/lib/active_record/connection_adapters/oracle_enhanced/database_limits.rb +5 -10
- data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +86 -81
- data/lib/active_record/connection_adapters/oracle_enhanced/database_tasks.rb +9 -10
- data/lib/active_record/connection_adapters/oracle_enhanced/dbms_output.rb +1 -2
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +37 -16
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/lob.rb +5 -6
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +58 -49
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced/procedures.rb +6 -7
- data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +75 -51
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +13 -14
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +14 -4
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +27 -24
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +156 -155
- data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +103 -90
- data/lib/active_record/connection_adapters/oracle_enhanced/type_metadata.rb +3 -2
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +261 -161
- data/lib/active_record/type/oracle_enhanced/boolean.rb +0 -1
- data/lib/active_record/type/oracle_enhanced/character_string.rb +36 -0
- data/lib/active_record/type/oracle_enhanced/integer.rb +0 -1
- data/lib/arel/visitors/oracle.rb +221 -0
- data/lib/arel/visitors/oracle12.rb +128 -0
- data/spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb +0 -2
- data/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb +78 -26
- data/spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb +7 -15
- data/spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb +5 -0
- data/spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb +17 -17
- data/spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb +7 -10
- data/spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb +0 -15
- data/spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb +33 -36
- data/spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb +77 -258
- data/spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb +38 -39
- data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +273 -85
- data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +7 -8
- data/spec/active_record/oracle_enhanced/type/boolean_spec.rb +2 -4
- data/spec/active_record/oracle_enhanced/type/character_string_spec.rb +43 -0
- data/spec/active_record/oracle_enhanced/type/custom_spec.rb +90 -0
- data/spec/active_record/oracle_enhanced/type/decimal_spec.rb +56 -0
- data/spec/active_record/oracle_enhanced/type/dirty_spec.rb +1 -1
- data/spec/active_record/oracle_enhanced/type/integer_spec.rb +2 -2
- data/spec/active_record/oracle_enhanced/type/json_spec.rb +0 -1
- data/spec/active_record/oracle_enhanced/type/national_character_string_spec.rb +6 -5
- data/spec/active_record/oracle_enhanced/type/timestamp_spec.rb +2 -4
- data/spec/spec_config.yaml.template +2 -2
- data/spec/spec_helper.rb +13 -2
- metadata +52 -30
- 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
|
-
|
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
|
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
|
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
|
@@ -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
|
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
|
-
|
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
|
-
|
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
|
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
|
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
|
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/
|
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
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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/
|
142
|
-
- spec/active_record/oracle_enhanced/
|
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/
|
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/
|
159
|
-
- spec/active_record/connection_adapters/oracle_enhanced/
|
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/
|
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
|