activerecord-oracle_enhanced-adapter 6.1.0 → 6.1.1

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: c5985d7537ecc79468e80b7ecddf9c8a52309719db665c0b904cb2d04994eb99
4
- data.tar.gz: 0e01cd4d37d2cd9a3f1a48f33b9cdcc9b9adc340a186415cfccb13975693bd3a
3
+ metadata.gz: ab0a6ce6d92c52ebd933c12bca31954f9493fcdcf21c32afdc979bad671ed227
4
+ data.tar.gz: d9b2710589287953fc425a86d04421d9b0e6eb6a3879984171c959ee12db84bf
5
5
  SHA512:
6
- metadata.gz: 58000a64e1d069d9058848a5ecf33474c8ef09ebb7ecf660d9169b5cc4b4a1911e3f8b72f24011801885c333930c378252a8f2bba5ac4051806acde9093a1af3
7
- data.tar.gz: 0c21d8db90ff52720800a717b47f776abf91eded32aec137141e1510453d1eea21e31f291a771df17d7a5957873f2d5479ada8a96aeb4eb24420598080157cfa
6
+ metadata.gz: 7e8ef63fe7d7adc5af906fbf9d7494889e8a06ebda0c48e2837f17ef7164f0d7d520070b585c879127fca807c01b3970c48229d3c69551e07184b49bbd4d8b3b
7
+ data.tar.gz: d009447a01baadcd254e1fc4bceb3a6733e6bd587818db8ad657594c32bf9a17635abcd64f6aec4db3a70a0c4036b0aaa29b08e7a6651745f9d09d23bf938222
data/History.md CHANGED
@@ -1,3 +1,28 @@
1
+ ## 6.1.1 / 2021-01-14
2
+
3
+ * Changes and bug fixes
4
+ * Remove /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ hint for all_synonyms [#2110, #2119]
5
+ * Fix write_lobs Invalid byte sequence in UTF-8 [#2097, #2111]
6
+ * Ensure FKs are properly included in structure dumps [#2109, #2113]
7
+
8
+ * CI
9
+ * CI against JRuby 9.2.14.0 [#2085]
10
+ * CI against Ruby 3.0.0 [#2091, #2092]
11
+ * Address Travis CI warnings and bump Ubuntu version to 20.04 [#2086]
12
+ * Exclude `ruby-head` and `ruby-debug` until minitest allows Ruby 3.1 #2094, #2095
13
+ * CI against Ruby 3.0.0 at Travis CI [#2093]
14
+
15
+ ## 6.1.0 / 2020-12-15
16
+
17
+ * Changes and bug fixes
18
+ * Support Rails 6.1.0
19
+ * Update bug report templates for Oracle enhanced adapter 6.1 [#2063]
20
+ * Use released version of rake [#2065 #2066]
21
+ * Add /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ hint to address slow SCHEMA queries [#2055, #2068]
22
+ * `build_subselect` does not have ordering [#2070]
23
+ * Remove `visit_Arel_Nodes_NotIn` and `visit_Arel_Nodes_In` visitors [#2075, #2077]
24
+ * `NOT IN` clause needs separated by `AND` [#2079, #2081]
25
+
1
26
  ## 6.1.0.rc1 / 2020-11-03
2
27
 
3
28
  * Changes and bug fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.1.0
1
+ 6.1.1
@@ -34,7 +34,7 @@ module ActiveRecord
34
34
  table_owner, table_name = default_owner, real_name
35
35
  end
36
36
  sql = <<~SQL.squish
37
- SELECT /*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.2') */ owner, table_name, 'TABLE' name_type
37
+ SELECT owner, table_name, 'TABLE' name_type
38
38
  FROM all_tables
39
39
  WHERE owner = '#{table_owner}'
40
40
  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, "SCHEMA")
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
@@ -479,6 +479,45 @@ describe "OracleEnhancedAdapter" do
479
479
  end
480
480
  end
481
481
 
482
+ describe "Binary lob column" do
483
+ before(:all) do
484
+ schema_define do
485
+ create_table :test_binary_columns do |t|
486
+ t.binary :attachment
487
+ end
488
+ end
489
+ class ::TestBinaryColumn < ActiveRecord::Base
490
+ end
491
+ end
492
+
493
+ after(:all) do
494
+ schema_define do
495
+ drop_table :test_binary_columns
496
+ end
497
+ Object.send(:remove_const, "TestBinaryColumn")
498
+ ActiveRecord::Base.table_name_prefix = nil
499
+ ActiveRecord::Base.clear_cache!
500
+ end
501
+
502
+ before(:each) do
503
+ set_logger
504
+ end
505
+
506
+ after(:each) do
507
+ clear_logger
508
+ end
509
+
510
+ it "should serialize with non UTF-8 data" do
511
+ binary_value = +"Hello \x93\xfa\x96\x7b"
512
+ binary_value.force_encoding "UTF-8"
513
+
514
+ binary_column_object = TestBinaryColumn.new
515
+ binary_column_object.attachment = binary_value
516
+
517
+ expect(binary_column_object.save!).to eq(true)
518
+ end
519
+ end
520
+
482
521
  describe "quoting" do
483
522
  before(:all) do
484
523
  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.1.0
4
+ version: 6.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raimonds Simanovskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-15 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
@@ -137,38 +137,38 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.8.11
139
139
  requirements: []
140
- rubygems_version: 3.1.4
140
+ rubygems_version: 3.2.3
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: Oracle enhanced adapter for ActiveRecord
144
144
  test_files:
145
- - spec/active_record/oracle_enhanced/type/dirty_spec.rb
146
- - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
147
- - spec/active_record/oracle_enhanced/type/raw_spec.rb
148
- - spec/active_record/oracle_enhanced/type/float_spec.rb
149
- - spec/active_record/oracle_enhanced/type/decimal_spec.rb
150
- - spec/active_record/oracle_enhanced/type/character_string_spec.rb
151
- - spec/active_record/oracle_enhanced/type/boolean_spec.rb
152
- - spec/active_record/oracle_enhanced/type/json_spec.rb
153
- - spec/active_record/oracle_enhanced/type/binary_spec.rb
154
- - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
155
- - spec/active_record/oracle_enhanced/type/timestamp_spec.rb
156
- - spec/active_record/oracle_enhanced/type/integer_spec.rb
157
- - spec/active_record/oracle_enhanced/type/text_spec.rb
158
- - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
159
145
  - spec/active_record/connection_adapters/emulation/oracle_adapter_spec.rb
160
- - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
146
+ - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
147
+ - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
161
148
  - spec/active_record/connection_adapters/oracle_enhanced/database_tasks_spec.rb
149
+ - spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb
150
+ - spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb
162
151
  - spec/active_record/connection_adapters/oracle_enhanced/quoting_spec.rb
152
+ - spec/active_record/connection_adapters/oracle_enhanced/schema_dumper_spec.rb
163
153
  - spec/active_record/connection_adapters/oracle_enhanced/schema_statements_spec.rb
164
- - spec/active_record/connection_adapters/oracle_enhanced/procedures_spec.rb
165
154
  - spec/active_record/connection_adapters/oracle_enhanced/structure_dump_spec.rb
166
- - spec/active_record/connection_adapters/oracle_enhanced/context_index_spec.rb
167
- - spec/active_record/connection_adapters/oracle_enhanced/dbms_output_spec.rb
168
- - spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb
155
+ - spec/active_record/connection_adapters/oracle_enhanced_adapter_spec.rb
169
156
  - spec/active_record/connection_adapters/oracle_enhanced_data_types_spec.rb
170
- - spec/support/create_oracle_enhanced_users.sql
171
- - spec/support/alter_system_user_password.sql
172
- - spec/support/alter_system_set_open_cursors.sql
157
+ - spec/active_record/oracle_enhanced/type/binary_spec.rb
158
+ - spec/active_record/oracle_enhanced/type/boolean_spec.rb
159
+ - spec/active_record/oracle_enhanced/type/character_string_spec.rb
160
+ - spec/active_record/oracle_enhanced/type/decimal_spec.rb
161
+ - spec/active_record/oracle_enhanced/type/dirty_spec.rb
162
+ - spec/active_record/oracle_enhanced/type/float_spec.rb
163
+ - spec/active_record/oracle_enhanced/type/integer_spec.rb
164
+ - spec/active_record/oracle_enhanced/type/json_spec.rb
165
+ - spec/active_record/oracle_enhanced/type/national_character_string_spec.rb
166
+ - spec/active_record/oracle_enhanced/type/national_character_text_spec.rb
167
+ - spec/active_record/oracle_enhanced/type/raw_spec.rb
168
+ - spec/active_record/oracle_enhanced/type/text_spec.rb
169
+ - spec/active_record/oracle_enhanced/type/timestamp_spec.rb
173
170
  - spec/spec_config.yaml.template
174
171
  - spec/spec_helper.rb
172
+ - spec/support/alter_system_set_open_cursors.sql
173
+ - spec/support/alter_system_user_password.sql
174
+ - spec/support/create_oracle_enhanced_users.sql