activerecord-oracle_enhanced-adapter 1.7.3 → 1.8.0
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 +288 -0
- data/README.md +44 -0
- 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 +7 -63
- data/lib/active_record/connection_adapters/oracle_enhanced/column_dumper.rb +6 -52
- data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +13 -16
- data/lib/active_record/connection_adapters/oracle_enhanced/context_index.rb +117 -119
- data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +33 -27
- data/lib/active_record/connection_adapters/oracle_enhanced/database_tasks.rb +10 -10
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +59 -77
- data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +0 -4
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +56 -82
- data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +4 -4
- data/lib/active_record/connection_adapters/oracle_enhanced/procedures.rb +77 -77
- data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +16 -45
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +60 -65
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +33 -51
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +149 -162
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +119 -122
- data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb +3 -4
- data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +69 -107
- data/lib/active_record/connection_adapters/oracle_enhanced/version.rb +1 -1
- data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +315 -538
- data/lib/active_record/oracle_enhanced/type/boolean.rb +7 -11
- data/lib/active_record/oracle_enhanced/type/integer.rb +4 -5
- data/lib/active_record/oracle_enhanced/type/json.rb +8 -0
- data/lib/active_record/oracle_enhanced/type/national_character_string.rb +1 -2
- data/lib/active_record/oracle_enhanced/type/raw.rb +2 -4
- data/lib/active_record/oracle_enhanced/type/string.rb +2 -3
- data/lib/active_record/oracle_enhanced/type/text.rb +2 -4
- data/lib/active_record/oracle_enhanced/type/timestamptz.rb +23 -0
- data/lib/activerecord-oracle_enhanced-adapter.rb +14 -13
- data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +129 -166
- data/spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb +50 -33
- data/spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb +44 -42
- data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +283 -378
- data/spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb +14 -7
- data/spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb +5 -7
- data/spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb +118 -127
- data/spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb +2 -3
- data/spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb +74 -78
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +68 -83
- data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +308 -321
- data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +103 -48
- data/spec/spec_config.yaml.template +11 -0
- data/spec/spec_helper.rb +59 -60
- data/spec/support/alter_system_user_password.sql +2 -0
- data/spec/support/create_oracle_enhanced_users.sql +31 -0
- metadata +25 -25
- data/.rspec +0 -2
- data/Gemfile +0 -22
- data/RUNNING_TESTS.md +0 -50
- data/Rakefile +0 -45
- data/activerecord-oracle_enhanced-adapter.gemspec +0 -95
- data/lib/active_record/connection_adapters/oracle_enhanced/cpk.rb +0 -21
- data/spec/active_record/connection_adapters/oracle_enhanced_cpk_spec.rb +0 -113
|
@@ -2,20 +2,16 @@ module ActiveRecord
|
|
|
2
2
|
module OracleEnhanced
|
|
3
3
|
module Type
|
|
4
4
|
class Boolean < ActiveModel::Type::Boolean # :nodoc:
|
|
5
|
-
# Add 'N' as FALSE_VALUES
|
|
6
|
-
FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF', 'n', 'N'].to_set
|
|
7
|
-
|
|
8
5
|
private
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
def cast_value(value)
|
|
8
|
+
# Kind of adding 'n' and 'N' to `FALSE_VALUES`
|
|
9
|
+
if ["n", "N"].include?(value)
|
|
10
|
+
false
|
|
11
|
+
else
|
|
12
|
+
super
|
|
13
|
+
end
|
|
16
14
|
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
end
|
|
20
16
|
end
|
|
21
17
|
end
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
module ActiveRecord
|
|
1
|
+
module ActiveRecord
|
|
3
2
|
module OracleEnhanced
|
|
4
3
|
module Type
|
|
5
4
|
class Integer < ActiveModel::Type::Integer # :nodoc:
|
|
6
5
|
private
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
def max_value
|
|
8
|
+
("9" * 38).to_i
|
|
9
|
+
end
|
|
11
10
|
end
|
|
12
11
|
end
|
|
13
12
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_model/type/string"
|
|
2
2
|
|
|
3
3
|
module ActiveRecord
|
|
4
4
|
module OracleEnhanced
|
|
5
5
|
module Type
|
|
6
6
|
class NationalCharacterString < ActiveRecord::OracleEnhanced::Type::String # :nodoc:
|
|
7
|
-
|
|
8
7
|
def serialize(value)
|
|
9
8
|
return unless value
|
|
10
9
|
Data.new(super)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_model/type/string"
|
|
2
2
|
|
|
3
|
-
#TODO Need to consider namespace change since paremt class moved to ActiveModel
|
|
4
3
|
module ActiveRecord
|
|
5
4
|
module OracleEnhanced
|
|
6
5
|
module Type
|
|
@@ -14,11 +13,10 @@ module ActiveRecord
|
|
|
14
13
|
if value.nil?
|
|
15
14
|
super
|
|
16
15
|
else
|
|
17
|
-
value = value.unpack(
|
|
16
|
+
value = value.unpack("C*")
|
|
18
17
|
value.map { |x| "%02X" % x }.join
|
|
19
18
|
end
|
|
20
19
|
end
|
|
21
|
-
|
|
22
20
|
end
|
|
23
21
|
end
|
|
24
22
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_model/type/string"
|
|
2
2
|
|
|
3
3
|
module ActiveRecord
|
|
4
4
|
module OracleEnhanced
|
|
@@ -15,13 +15,12 @@ module ActiveRecord
|
|
|
15
15
|
|
|
16
16
|
def changed_in_place?(raw_old_value, new_value)
|
|
17
17
|
if raw_old_value.nil?
|
|
18
|
-
new_value = nil if new_value ==
|
|
18
|
+
new_value = nil if new_value == ""
|
|
19
19
|
raw_old_value != new_value
|
|
20
20
|
else
|
|
21
21
|
super
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
-
|
|
25
24
|
end
|
|
26
25
|
end
|
|
27
26
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_model/type/string"
|
|
2
2
|
|
|
3
3
|
module ActiveRecord
|
|
4
4
|
module OracleEnhanced
|
|
5
5
|
module Type
|
|
6
|
-
class Text <
|
|
7
|
-
|
|
6
|
+
class Text < ActiveRecord::Type::Text # :nodoc:
|
|
8
7
|
def changed_in_place?(raw_old_value, new_value)
|
|
9
8
|
#TODO: Needs to find a way not to cast here.
|
|
10
9
|
raw_old_value = cast(raw_old_value)
|
|
@@ -25,7 +24,6 @@ module ActiveRecord
|
|
|
25
24
|
@value
|
|
26
25
|
end
|
|
27
26
|
end
|
|
28
|
-
|
|
29
27
|
end
|
|
30
28
|
end
|
|
31
29
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module ActiveRecord
|
|
2
|
+
module OracleEnhanced
|
|
3
|
+
module Type
|
|
4
|
+
class TimestampTz < ActiveRecord::Type::DateTime
|
|
5
|
+
def type
|
|
6
|
+
:timestamptz
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
class Data < DelegateClass(::Time) # :nodoc:
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def serialize(value)
|
|
13
|
+
case value = super
|
|
14
|
+
when ::Time
|
|
15
|
+
Data.new(value)
|
|
16
|
+
else
|
|
17
|
+
value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
module
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
if defined?(Rails)
|
|
2
|
+
module ActiveRecord
|
|
3
|
+
module ConnectionAdapters
|
|
4
|
+
class OracleEnhancedRailtie < ::Rails::Railtie
|
|
5
|
+
rake_tasks do
|
|
6
|
+
load "active_record/connection_adapters/oracle_enhanced/database_tasks.rb"
|
|
7
|
+
end
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
ActiveSupport.on_load(:active_record) do
|
|
10
|
+
require "active_record/connection_adapters/oracle_enhanced_adapter"
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
# Cache column descriptions between requests in test and production environments
|
|
13
|
+
if Rails.env.test? || Rails.env.production?
|
|
14
|
+
ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.cache_columns = true
|
|
15
|
+
end
|
|
15
16
|
|
|
17
|
+
end
|
|
16
18
|
end
|
|
17
|
-
|
|
18
19
|
end
|
|
19
20
|
end
|
|
20
21
|
end
|