activerecord-oracle_enhanced-adapter 6.0.5 → 6.0.6

Sign up to get free protection for your applications and to get access to all the features.
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