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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +288 -0
  3. data/README.md +44 -0
  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 +7 -63
  7. data/lib/active_record/connection_adapters/oracle_enhanced/column_dumper.rb +6 -52
  8. data/lib/active_record/connection_adapters/oracle_enhanced/connection.rb +13 -16
  9. data/lib/active_record/connection_adapters/oracle_enhanced/context_index.rb +117 -119
  10. data/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb +33 -27
  11. data/lib/active_record/connection_adapters/oracle_enhanced/database_tasks.rb +10 -10
  12. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +59 -77
  13. data/lib/active_record/connection_adapters/oracle_enhanced/jdbc_quoting.rb +0 -4
  14. data/lib/active_record/connection_adapters/oracle_enhanced/oci_connection.rb +56 -82
  15. data/lib/active_record/connection_adapters/oracle_enhanced/oci_quoting.rb +4 -4
  16. data/lib/active_record/connection_adapters/oracle_enhanced/procedures.rb +77 -77
  17. data/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +16 -45
  18. data/lib/active_record/connection_adapters/oracle_enhanced/schema_creation.rb +60 -65
  19. data/lib/active_record/connection_adapters/oracle_enhanced/schema_definitions.rb +33 -51
  20. data/lib/active_record/connection_adapters/oracle_enhanced/schema_dumper.rb +149 -162
  21. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements.rb +119 -122
  22. data/lib/active_record/connection_adapters/oracle_enhanced/schema_statements_ext.rb +3 -4
  23. data/lib/active_record/connection_adapters/oracle_enhanced/structure_dump.rb +69 -107
  24. data/lib/active_record/connection_adapters/oracle_enhanced/version.rb +1 -1
  25. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +315 -538
  26. data/lib/active_record/oracle_enhanced/type/boolean.rb +7 -11
  27. data/lib/active_record/oracle_enhanced/type/integer.rb +4 -5
  28. data/lib/active_record/oracle_enhanced/type/json.rb +8 -0
  29. data/lib/active_record/oracle_enhanced/type/national_character_string.rb +1 -2
  30. data/lib/active_record/oracle_enhanced/type/raw.rb +2 -4
  31. data/lib/active_record/oracle_enhanced/type/string.rb +2 -3
  32. data/lib/active_record/oracle_enhanced/type/text.rb +2 -4
  33. data/lib/active_record/oracle_enhanced/type/timestamptz.rb +23 -0
  34. data/lib/activerecord-oracle_enhanced-adapter.rb +14 -13
  35. data/spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb +129 -166
  36. data/spec/active_record/connection_adapters/oracle_enhanced_connection_spec.rb +50 -33
  37. data/spec/active_record/connection_adapters/oracle_enhanced_context_index_spec.rb +44 -42
  38. data/spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb +283 -378
  39. data/spec/active_record/connection_adapters/oracle_enhanced_database_tasks_spec.rb +14 -7
  40. data/spec/active_record/connection_adapters/oracle_enhanced_dbms_output_spec.rb +5 -7
  41. data/spec/active_record/connection_adapters/oracle_enhanced_dirty_spec.rb +118 -127
  42. data/spec/active_record/connection_adapters/oracle_enhanced_emulate_oracle_adapter_spec.rb +2 -3
  43. data/spec/active_record/connection_adapters/oracle_enhanced_procedures_spec.rb +74 -78
  44. data/spec/active_record/connection_adapters/oracle_enhanced_schema_dump_spec.rb +68 -83
  45. data/spec/active_record/connection_adapters/oracle_enhanced_schema_statements_spec.rb +308 -321
  46. data/spec/active_record/connection_adapters/oracle_enhanced_structure_dump_spec.rb +103 -48
  47. data/spec/spec_config.yaml.template +11 -0
  48. data/spec/spec_helper.rb +59 -60
  49. data/spec/support/alter_system_user_password.sql +2 -0
  50. data/spec/support/create_oracle_enhanced_users.sql +31 -0
  51. metadata +25 -25
  52. data/.rspec +0 -2
  53. data/Gemfile +0 -22
  54. data/RUNNING_TESTS.md +0 -50
  55. data/Rakefile +0 -45
  56. data/activerecord-oracle_enhanced-adapter.gemspec +0 -95
  57. data/lib/active_record/connection_adapters/oracle_enhanced/cpk.rb +0 -21
  58. 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
- def cast_value(value)
11
- # Not calling super to use its own `FALSE_VALUES`
12
- if value == ''
13
- nil
14
- else
15
- !FALSE_VALUES.include?(value)
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
- #TODO Need to consider namespace change since paremt class moved to ActiveModel
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
- def max_value
9
- ("9"*38).to_i
10
- end
7
+ def max_value
8
+ ("9" * 38).to_i
9
+ end
11
10
  end
12
11
  end
13
12
  end
@@ -0,0 +1,8 @@
1
+ module ActiveRecord
2
+ module OracleEnhanced
3
+ module Type
4
+ class Json < ActiveRecord::Type::Internal::AbstractJson
5
+ end
6
+ end
7
+ end
8
+ end
@@ -1,10 +1,9 @@
1
- require 'active_model/type/string'
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 'active_model/type/string'
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('C*')
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 'active_model/type/string'
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 'active_model/type/string'
1
+ require "active_model/type/string"
2
2
 
3
3
  module ActiveRecord
4
4
  module OracleEnhanced
5
5
  module Type
6
- class Text < ActiveModel::Type::Text # :nodoc:
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
- module ActiveRecord
2
- module ConnectionAdapters
3
- class OracleEnhancedRailtie < ::Rails::Railtie
4
- rake_tasks do
5
- load 'active_record/connection_adapters/oracle_enhanced/database_tasks.rb'
6
- end
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
- ActiveSupport.on_load(:active_record) do
9
- require 'active_record/connection_adapters/oracle_enhanced_adapter'
9
+ ActiveSupport.on_load(:active_record) do
10
+ require "active_record/connection_adapters/oracle_enhanced_adapter"
10
11
 
11
- # Cache column descriptions between requests in test and production environments
12
- if Rails.env.test? || Rails.env.production?
13
- ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.cache_columns = true
14
- end
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