activerecord-oracle_enhanced-adapter 6.0.5 → 6.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c17fca6feaefdeefe04446c769a721e5f26b6f2ed254bef6f3bdee85a66b222
4
- data.tar.gz: 5d975d115515ccbacb1b540dc8ece885f218213128d462536df3023b0112bbe2
3
+ metadata.gz: 1410c7eb8f55a7b4c96b8016f31c573512699978498ee6effae6d4875b1e3f31
4
+ data.tar.gz: 36cbc570c5c5a1c6d074353f1de0d8d6ce07c90fd5b906727d7ee2e78a473a1e
5
5
  SHA512:
6
- metadata.gz: a736592361bc80d4930bbd0a2b21680dd1458400c66832c401f164c1effe9179e5a0771c5877b70df6286ef05ec81f71d8f1a96b1479c43f1b3f9d2b7d46c55e
7
- data.tar.gz: 158dd74c1af746d0295b593ad62bedaa656374740151b4fb99342d9f33eedef8ed85f42b3e9622ab9289938f1b62c8e37a4eeca87f39a2779a42081e65d09bb4
6
+ metadata.gz: 1f1ba2aed7eef1fa08e31c4fe7f43762eb077b10e412f9db61228589d1387f440b64b17db05fd3fd796e0eb4ebc8ca00f91f767f0ea6402e079783265cb583a6
7
+ data.tar.gz: 700df5182daf9a04a67dcc478aa378d9deb8d09fba726ccf2ce9878b8c1dc70f56a5a135048e00438e5078b9916467f8b356e6a3a4bc5bc8897fb874a8a686c3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.0.5
1
+ 6.0.6
@@ -35,7 +35,7 @@ module ActiveRecord
35
35
  table_owner, table_name = default_owner, real_name
36
36
  end
37
37
  sql = <<~SQL.squish
38
- SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ owner, table_name, 'TABLE' name_type
38
+ SELECT owner, table_name, 'TABLE' name_type
39
39
  FROM all_tables
40
40
  WHERE owner = '#{table_owner}'
41
41
  AND table_name = '#{table_name}'
@@ -254,9 +254,11 @@ module ActiveRecord
254
254
  columns.each do |col|
255
255
  value = attributes[col.name]
256
256
  # changed sequence of next two lines - should check if value is nil before converting to yaml
257
- next if value.blank?
257
+ next unless value
258
258
  if klass.attribute_types[col.name].is_a? Type::Serialized
259
259
  value = klass.attribute_types[col.name].serialize(value)
260
+ # value can be nil after serialization because ActiveRecord serializes [] and {} as nil
261
+ next unless value
260
262
  end
261
263
  uncached do
262
264
  unless lob_record = select_one(sql = <<~SQL.squish, "Writable Large Object")
@@ -76,7 +76,7 @@ module ActiveRecord
76
76
  # get synonyms for schema dump
77
77
  def synonyms
78
78
  result = select_all(<<~SQL.squish, "synonyms")
79
- SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ synonym_name, table_owner, table_name
79
+ SELECT synonym_name, table_owner, table_name
80
80
  FROM all_synonyms where owner = SYS_CONTEXT('userenv', 'current_schema')
81
81
  SQL
82
82
 
@@ -55,8 +55,9 @@ module ActiveRecord #:nodoc:
55
55
  structure << structure_dump_column_comments(table_name)
56
56
  end
57
57
 
58
- join_with_statement_token(structure) << structure_dump_fk_constraints
59
- join_with_statement_token(structure) << structure_dump_views
58
+ join_with_statement_token(structure) <<
59
+ structure_dump_fk_constraints <<
60
+ structure_dump_views
60
61
  end
61
62
 
62
63
  def structure_dump_column(column) #:nodoc:
@@ -66,7 +66,7 @@ describe "OracleEnhancedAdapter structure dump" do
66
66
  ALTER TABLE TEST_POSTS
67
67
  ADD CONSTRAINT fk_test_post_foo FOREIGN KEY (foo_id) REFERENCES foos(id)
68
68
  SQL
69
- dump = ActiveRecord::Base.connection.structure_dump_fk_constraints
69
+ dump = ActiveRecord::Base.connection.structure_dump
70
70
  expect(dump.split('\n').length).to eq(1)
71
71
  expect(dump).to match(/ALTER TABLE \"?TEST_POSTS\"? ADD CONSTRAINT \"?FK_TEST_POST_FOO\"? FOREIGN KEY \(\"?FOO_ID\"?\) REFERENCES \"?FOOS\"?\(\"?ID\"?\)/i)
72
72
  end
@@ -86,7 +86,7 @@ describe "OracleEnhancedAdapter structure dump" do
86
86
  ADD CONSTRAINT fk_test_post_baz FOREIGN KEY (baz_id) REFERENCES foos(baz_id)
87
87
  SQL
88
88
 
89
- dump = ActiveRecord::Base.connection.structure_dump_fk_constraints
89
+ dump = ActiveRecord::Base.connection.structure_dump
90
90
  expect(dump.split('\n').length).to eq(1)
91
91
  expect(dump).to match(/ALTER TABLE \"?TEST_POSTS\"? ADD CONSTRAINT \"?FK_TEST_POST_BAZ\"? FOREIGN KEY \(\"?BAZ_ID\"?\) REFERENCES \"?FOOS\"?\(\"?BAZ_ID\"?\)/i)
92
92
  end
@@ -431,6 +431,45 @@ describe "OracleEnhancedAdapter" do
431
431
  end
432
432
  end
433
433
 
434
+ describe "Binary lob column" do
435
+ before(:all) do
436
+ schema_define do
437
+ create_table :test_binary_columns do |t|
438
+ t.binary :attachment
439
+ end
440
+ end
441
+ class ::TestBinaryColumn < ActiveRecord::Base
442
+ end
443
+ end
444
+
445
+ after(:all) do
446
+ schema_define do
447
+ drop_table :test_binary_columns
448
+ end
449
+ Object.send(:remove_const, "TestBinaryColumn")
450
+ ActiveRecord::Base.table_name_prefix = nil
451
+ ActiveRecord::Base.clear_cache!
452
+ end
453
+
454
+ before(:each) do
455
+ set_logger
456
+ end
457
+
458
+ after(:each) do
459
+ clear_logger
460
+ end
461
+
462
+ it "should serialize with non UTF-8 data" do
463
+ binary_value = +"Hello \x93\xfa\x96\x7b"
464
+ binary_value.force_encoding "UTF-8"
465
+
466
+ binary_column_object = TestBinaryColumn.new
467
+ binary_column_object.attachment = binary_value
468
+
469
+ expect(binary_column_object.save!).to eq(true)
470
+ end
471
+ end
472
+
434
473
  describe "quoting" do
435
474
  before(:all) do
436
475
  schema_define do
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: 6.0.5
4
+ version: 6.0.6
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: 2020-12-17 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -120,7 +120,7 @@ homepage: http://github.com/rsim/oracle-enhanced
120
120
  licenses:
121
121
  - MIT
122
122
  metadata: {}
123
- post_install_message:
123
+ post_install_message:
124
124
  rdoc_options: []
125
125
  require_paths:
126
126
  - lib
@@ -135,38 +135,38 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  - !ruby/object:Gem::Version
136
136
  version: 1.8.11
137
137
  requirements: []
138
- rubygems_version: 3.1.4
139
- signing_key:
138
+ rubygems_version: 3.2.3
139
+ signing_key:
140
140
  specification_version: 4
141
141
  summary: Oracle enhanced adapter for ActiveRecord
142
142
  test_files:
143
- - spec/spec_helper.rb
144
- - spec/spec_config.yaml.template
145
143
  - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
146
- - spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
144
+ - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
145
+ - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
147
146
  - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
148
- - spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb
149
- - spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb
150
- - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
151
147
  - spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb
152
- - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
153
148
  - spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb
149
+ - spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb
150
+ - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
151
+ - spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb
154
152
  - spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb
155
- - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
156
153
  - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
154
+ - spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
155
+ - spec/active_record/oracle_enhanced/type/binary_spec.rb
156
+ - spec/active_record/oracle_enhanced/type/boolean_spec.rb
157
+ - spec/active_record/oracle_enhanced/type/character_string_spec.rb
157
158
  - spec/active_record/oracle_enhanced/type/decimal_spec.rb
158
- - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
159
159
  - spec/active_record/oracle_enhanced/type/dirty_spec.rb
160
- - spec/active_record/oracle_enhanced/type/boolean_spec.rb
160
+ - spec/active_record/oracle_enhanced/type/float_spec.rb
161
+ - spec/active_record/oracle_enhanced/type/integer_spec.rb
161
162
  - spec/active_record/oracle_enhanced/type/json_spec.rb
163
+ - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
164
+ - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
162
165
  - spec/active_record/oracle_enhanced/type/raw_spec.rb
163
- - spec/active_record/oracle_enhanced/type/binary_spec.rb
164
166
  - spec/active_record/oracle_enhanced/type/text_spec.rb
165
167
  - spec/active_record/oracle_enhanced/type/timestamp_spec.rb
166
- - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
167
- - spec/active_record/oracle_enhanced/type/character_string_spec.rb
168
- - spec/active_record/oracle_enhanced/type/integer_spec.rb
169
- - spec/active_record/oracle_enhanced/type/float_spec.rb
168
+ - spec/spec_config.yaml.template
169
+ - spec/spec_helper.rb
170
170
  - spec/support/alter_system_set_open_cursors.sql
171
171
  - spec/support/alter_system_user_password.sql
172
172
  - spec/support/create_oracle_enhanced_users.sql