sequel 4.44.0 → 4.45.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/CHANGELOG +110 -0
- data/README.rdoc +8 -9
- data/doc/active_record.rdoc +2 -3
- data/doc/model_plugins.rdoc +1 -1
- data/doc/opening_databases.rdoc +0 -46
- data/doc/release_notes/4.45.0.txt +370 -0
- data/lib/sequel/adapters/cubrid.rb +2 -0
- data/lib/sequel/adapters/do.rb +2 -0
- data/lib/sequel/adapters/jdbc/as400.rb +2 -0
- data/lib/sequel/adapters/jdbc/cubrid.rb +2 -0
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +2 -0
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +2 -0
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +2 -0
- data/lib/sequel/adapters/jdbc/mysql.rb +1 -0
- data/lib/sequel/adapters/jdbc/postgresql.rb +5 -0
- data/lib/sequel/adapters/mysql.rb +1 -0
- data/lib/sequel/adapters/mysql2.rb +1 -0
- data/lib/sequel/adapters/odbc/oracle.rb +11 -0
- data/lib/sequel/adapters/odbc/progress.rb +2 -0
- data/lib/sequel/adapters/postgres.rb +0 -2
- data/lib/sequel/adapters/shared/cubrid.rb +2 -0
- data/lib/sequel/adapters/shared/firebird.rb +2 -0
- data/lib/sequel/adapters/shared/informix.rb +2 -0
- data/lib/sequel/adapters/shared/mssql.rb +47 -7
- data/lib/sequel/adapters/shared/mysql.rb +16 -1
- data/lib/sequel/adapters/shared/postgres.rb +9 -1
- data/lib/sequel/adapters/shared/progress.rb +2 -0
- data/lib/sequel/adapters/shared/sqlanywhere.rb +1 -1
- data/lib/sequel/adapters/swift.rb +2 -0
- data/lib/sequel/ast_transformer.rb +13 -6
- data/lib/sequel/core.rb +13 -16
- data/lib/sequel/database/connecting.rb +25 -10
- data/lib/sequel/database/dataset.rb +6 -1
- data/lib/sequel/database/dataset_defaults.rb +9 -2
- data/lib/sequel/database/misc.rb +10 -3
- data/lib/sequel/database/schema_methods.rb +4 -0
- data/lib/sequel/dataset/mutation.rb +8 -20
- data/lib/sequel/dataset/prepared_statements.rb +2 -0
- data/lib/sequel/dataset/query.rb +32 -7
- data/lib/sequel/dataset/sql.rb +13 -3
- data/lib/sequel/deprecated.rb +9 -1
- data/lib/sequel/exceptions.rb +37 -8
- data/lib/sequel/extensions/_deprecated_identifier_mangling.rb +117 -0
- data/lib/sequel/extensions/date_arithmetic.rb +1 -0
- data/lib/sequel/extensions/identifier_mangling.rb +3 -2
- data/lib/sequel/extensions/pg_hstore.rb +1 -5
- data/lib/sequel/extensions/schema_dumper.rb +3 -1
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +2 -2
- data/lib/sequel/extensions/string_agg.rb +1 -0
- data/lib/sequel/model.rb +23 -10
- data/lib/sequel/model/associations.rb +17 -5
- data/lib/sequel/model/base.rb +115 -62
- data/lib/sequel/model/dataset_module.rb +10 -3
- data/lib/sequel/model/exceptions.rb +7 -5
- data/lib/sequel/plugins/association_pks.rb +13 -1
- data/lib/sequel/plugins/association_proxies.rb +8 -1
- data/lib/sequel/plugins/before_after_save.rb +1 -0
- data/lib/sequel/plugins/class_table_inheritance.rb +7 -3
- data/lib/sequel/plugins/columns_updated.rb +42 -0
- data/lib/sequel/plugins/composition.rb +10 -5
- data/lib/sequel/plugins/error_splitter.rb +1 -1
- data/lib/sequel/plugins/hook_class_methods.rb +39 -5
- data/lib/sequel/plugins/instance_hooks.rb +58 -5
- data/lib/sequel/plugins/lazy_attributes.rb +10 -5
- data/lib/sequel/plugins/nested_attributes.rb +10 -5
- data/lib/sequel/plugins/prepared_statements.rb +7 -0
- data/lib/sequel/plugins/prepared_statements_associations.rb +2 -0
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +2 -0
- data/lib/sequel/plugins/schema.rb +2 -0
- data/lib/sequel/plugins/scissors.rb +2 -0
- data/lib/sequel/plugins/serialization.rb +10 -5
- data/lib/sequel/plugins/split_values.rb +5 -1
- data/lib/sequel/plugins/static_cache.rb +2 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +1 -1
- data/lib/sequel/plugins/validation_contexts.rb +49 -0
- data/lib/sequel/plugins/validation_helpers.rb +1 -0
- data/lib/sequel/sql.rb +1 -1
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/mssql_spec.rb +31 -0
- data/spec/adapters/mysql_spec.rb +20 -2
- data/spec/adapters/postgres_spec.rb +43 -12
- data/spec/adapters/spec_helper.rb +5 -8
- data/spec/core/database_spec.rb +47 -12
- data/spec/core/dataset_mutation_spec.rb +22 -22
- data/spec/core/dataset_spec.rb +88 -20
- data/spec/core/deprecated_spec.rb +1 -1
- data/spec/core/expression_filters_spec.rb +1 -1
- data/spec/core/mock_adapter_spec.rb +0 -3
- data/spec/core/placeholder_literalizer_spec.rb +1 -1
- data/spec/core/schema_spec.rb +8 -1
- data/spec/core/spec_helper.rb +6 -1
- data/spec/core_extensions_spec.rb +4 -0
- data/spec/deprecation_helper.rb +17 -0
- data/spec/extensions/_deprecated_identifier_mangling_spec.rb +314 -0
- data/spec/extensions/association_pks_spec.rb +61 -13
- data/spec/extensions/association_proxies_spec.rb +3 -3
- data/spec/extensions/class_table_inheritance_spec.rb +39 -0
- data/spec/extensions/columns_updated_spec.rb +35 -0
- data/spec/extensions/composition_spec.rb +6 -1
- data/spec/extensions/hook_class_methods_spec.rb +114 -26
- data/spec/extensions/identifier_mangling_spec.rb +107 -73
- data/spec/extensions/instance_hooks_spec.rb +78 -14
- data/spec/extensions/lazy_attributes_spec.rb +8 -2
- data/spec/extensions/many_through_many_spec.rb +2 -2
- data/spec/extensions/mssql_optimistic_locking_spec.rb +1 -1
- data/spec/extensions/nested_attributes_spec.rb +8 -2
- data/spec/extensions/pg_array_spec.rb +18 -4
- data/spec/extensions/prepared_statements_associations_spec.rb +48 -39
- data/spec/extensions/prepared_statements_with_pk_spec.rb +13 -11
- data/spec/extensions/query_spec.rb +1 -1
- data/spec/extensions/schema_dumper_spec.rb +34 -6
- data/spec/extensions/schema_spec.rb +13 -7
- data/spec/extensions/scissors_spec.rb +3 -1
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +4 -4
- data/spec/extensions/serialization_spec.rb +7 -1
- data/spec/extensions/set_overrides_spec.rb +2 -2
- data/spec/extensions/shared_caching_spec.rb +19 -15
- data/spec/extensions/spec_helper.rb +7 -3
- data/spec/extensions/split_values_spec.rb +45 -10
- data/spec/extensions/string_agg_spec.rb +2 -2
- data/spec/extensions/subset_conditions_spec.rb +3 -3
- data/spec/extensions/tactical_eager_loading_spec.rb +1 -1
- data/spec/extensions/validation_contexts_spec.rb +31 -0
- data/spec/guards_helper.rb +2 -0
- data/spec/integration/associations_test.rb +22 -20
- data/spec/integration/dataset_test.rb +25 -2
- data/spec/integration/model_test.rb +1 -1
- data/spec/integration/plugin_test.rb +11 -16
- data/spec/integration/prepared_statement_test.rb +40 -32
- data/spec/integration/spec_helper.rb +5 -8
- data/spec/model/association_reflection_spec.rb +4 -0
- data/spec/model/associations_spec.rb +37 -10
- data/spec/model/base_spec.rb +6 -0
- data/spec/model/hooks_spec.rb +56 -35
- data/spec/model/model_spec.rb +21 -5
- data/spec/model/record_spec.rb +14 -11
- data/spec/model/spec_helper.rb +7 -1
- data/spec/sequel_warning.rb +11 -0
- metadata +13 -3
data/spec/model/record_spec.rb
CHANGED
|
@@ -195,7 +195,7 @@ describe "Model#save" do
|
|
|
195
195
|
o.changed_columns.must_equal []
|
|
196
196
|
end
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
deprecated "should store previous value of @new in @was_new and as well as the hash used for updating in @columns_updated until after hooks finish running" do
|
|
199
199
|
res = nil
|
|
200
200
|
@c.send(:define_method, :after_save){ res = [@columns_updated, @was_new]}
|
|
201
201
|
o = @c.new(:x => 1, :y => nil)
|
|
@@ -209,7 +209,9 @@ describe "Model#save" do
|
|
|
209
209
|
o = @c.load(:id => 23,:x => 1, :y => nil)
|
|
210
210
|
o[:x] = 2
|
|
211
211
|
o.save
|
|
212
|
-
res.
|
|
212
|
+
res[0].fetch(:x).must_equal 2
|
|
213
|
+
res[0].fetch(:y).must_be_nil
|
|
214
|
+
res.fetch(1).must_be_nil
|
|
213
215
|
o.after_save
|
|
214
216
|
res.must_equal [nil, nil]
|
|
215
217
|
|
|
@@ -218,7 +220,8 @@ describe "Model#save" do
|
|
|
218
220
|
o[:x] = 2
|
|
219
221
|
o[:y] = 22
|
|
220
222
|
o.save(:columns=>:x)
|
|
221
|
-
res.must_equal
|
|
223
|
+
res[0].fetch(:x).must_equal 2
|
|
224
|
+
res.fetch(1).must_be_nil
|
|
222
225
|
o.after_save
|
|
223
226
|
res.must_equal [nil, nil]
|
|
224
227
|
end
|
|
@@ -265,7 +268,7 @@ describe "Model#save" do
|
|
|
265
268
|
DB.sqls.must_equal ["BEGIN", "UPDATE items SET y = NULL WHERE (id = 3)", "COMMIT"]
|
|
266
269
|
end
|
|
267
270
|
|
|
268
|
-
|
|
271
|
+
deprecated "should rollback if before_save returns false and raise_on_save_failure = true" do
|
|
269
272
|
o = @c.load(:id => 3, :x => 1, :y => nil)
|
|
270
273
|
o.use_transactions = true
|
|
271
274
|
o.raise_on_save_failure = true
|
|
@@ -287,23 +290,23 @@ describe "Model#save" do
|
|
|
287
290
|
DB.sqls.must_equal ["BEGIN", "ROLLBACK"]
|
|
288
291
|
end
|
|
289
292
|
|
|
290
|
-
it "should rollback if before_save
|
|
293
|
+
it "should rollback if before_save calls cancel_action and :raise_on_failure option is true" do
|
|
291
294
|
o = @c.load(:id => 3, :x => 1, :y => nil)
|
|
292
295
|
o.use_transactions = true
|
|
293
296
|
o.raise_on_save_failure = false
|
|
294
297
|
def o.before_save
|
|
295
|
-
|
|
298
|
+
cancel_action
|
|
296
299
|
end
|
|
297
300
|
proc { o.save(:columns=>:y, :raise_on_failure => true) }.must_raise(Sequel::HookFailed)
|
|
298
301
|
DB.sqls.must_equal ["BEGIN", "ROLLBACK"]
|
|
299
302
|
end
|
|
300
303
|
|
|
301
|
-
it "should not rollback outer transactions if before_save
|
|
304
|
+
it "should not rollback outer transactions if before_save calls cancel_action and raise_on_save_failure = false" do
|
|
302
305
|
o = @c.load(:id => 3, :x => 1, :y => nil)
|
|
303
306
|
o.use_transactions = true
|
|
304
307
|
o.raise_on_save_failure = false
|
|
305
308
|
def o.before_save
|
|
306
|
-
|
|
309
|
+
cancel_action
|
|
307
310
|
end
|
|
308
311
|
DB.transaction do
|
|
309
312
|
o.save(:columns=>:y).must_be_nil
|
|
@@ -312,12 +315,12 @@ describe "Model#save" do
|
|
|
312
315
|
DB.sqls.must_equal ["BEGIN", "BLAH", "COMMIT"]
|
|
313
316
|
end
|
|
314
317
|
|
|
315
|
-
it "should rollback if before_save
|
|
318
|
+
it "should rollback if before_save calls cancel_action and raise_on_save_failure = false" do
|
|
316
319
|
o = @c.load(:id => 3, :x => 1, :y => nil)
|
|
317
320
|
o.use_transactions = true
|
|
318
321
|
o.raise_on_save_failure = false
|
|
319
322
|
def o.before_save
|
|
320
|
-
|
|
323
|
+
cancel_action
|
|
321
324
|
end
|
|
322
325
|
o.save(:columns=>:y).must_be_nil
|
|
323
326
|
DB.sqls.must_equal ["BEGIN", "ROLLBACK"]
|
|
@@ -684,7 +687,7 @@ describe "Model#save_changes" do
|
|
|
684
687
|
|
|
685
688
|
it "should take options passed to save" do
|
|
686
689
|
o = @c.new(:x => 1)
|
|
687
|
-
def o.before_validation;
|
|
690
|
+
def o.before_validation; cancel_action; end
|
|
688
691
|
proc{o.save_changes}.must_raise(Sequel::HookFailed)
|
|
689
692
|
DB.sqls.must_equal []
|
|
690
693
|
o.save_changes(:validate=>false)
|
data/spec/model/spec_helper.rb
CHANGED
|
@@ -11,9 +11,15 @@ gem 'minitest'
|
|
|
11
11
|
require 'minitest/autorun'
|
|
12
12
|
require 'minitest/hooks/default'
|
|
13
13
|
|
|
14
|
+
require "#{File.dirname(File.dirname(__FILE__))}/deprecation_helper.rb"
|
|
15
|
+
|
|
16
|
+
# SEQUEL5: Remove
|
|
17
|
+
output = Sequel::Deprecation.output
|
|
18
|
+
Sequel::Deprecation.output = nil
|
|
14
19
|
Sequel.quote_identifiers = false
|
|
15
20
|
Sequel.identifier_input_method = nil
|
|
16
21
|
Sequel.identifier_output_method = nil
|
|
22
|
+
Sequel::Deprecation.output = output
|
|
17
23
|
|
|
18
24
|
class << Sequel::Model
|
|
19
25
|
attr_writer :db_schema
|
|
@@ -30,7 +36,7 @@ class << Sequel::Model
|
|
|
30
36
|
end
|
|
31
37
|
|
|
32
38
|
Sequel::Model.use_transactions = false
|
|
33
|
-
Sequel.cache_anonymous_models = false
|
|
39
|
+
Sequel::Model.cache_anonymous_models = false
|
|
34
40
|
|
|
35
41
|
db = Sequel.mock(:fetch=>{:id => 1, :x => 1}, :numrows=>1, :autoid=>proc{|sql| 10})
|
|
36
42
|
def db.schema(*) [[:id, {:primary_key=>true}]] end
|
data/spec/sequel_warning.rb
CHANGED
|
@@ -2,3 +2,14 @@ if ENV['WARNING']
|
|
|
2
2
|
require 'warning'
|
|
3
3
|
Warning.ignore([:missing_ivar, :method_redefined], File.dirname(File.dirname(__FILE__)))
|
|
4
4
|
end
|
|
5
|
+
|
|
6
|
+
# SEQUEL5: Remove
|
|
7
|
+
if RUBY_VERSION >= '2.4'
|
|
8
|
+
begin
|
|
9
|
+
require 'warning'
|
|
10
|
+
rescue LoadError
|
|
11
|
+
# nothing
|
|
12
|
+
else
|
|
13
|
+
Warning.ignore(/warning: constant Sequel::[a-zA-z:]+ is deprecated/, File.dirname(File.dirname(__FILE__)))
|
|
14
|
+
end
|
|
15
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sequel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.45.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeremy Evans
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-04-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|
|
@@ -246,6 +246,7 @@ extra_rdoc_files:
|
|
|
246
246
|
- doc/release_notes/4.42.0.txt
|
|
247
247
|
- doc/release_notes/4.43.0.txt
|
|
248
248
|
- doc/release_notes/4.44.0.txt
|
|
249
|
+
- doc/release_notes/4.45.0.txt
|
|
249
250
|
files:
|
|
250
251
|
- CHANGELOG
|
|
251
252
|
- MIT-LICENSE
|
|
@@ -381,6 +382,7 @@ files:
|
|
|
381
382
|
- doc/release_notes/4.42.0.txt
|
|
382
383
|
- doc/release_notes/4.43.0.txt
|
|
383
384
|
- doc/release_notes/4.44.0.txt
|
|
385
|
+
- doc/release_notes/4.45.0.txt
|
|
384
386
|
- doc/release_notes/4.5.0.txt
|
|
385
387
|
- doc/release_notes/4.6.0.txt
|
|
386
388
|
- doc/release_notes/4.7.0.txt
|
|
@@ -431,6 +433,7 @@ files:
|
|
|
431
433
|
- lib/sequel/adapters/odbc.rb
|
|
432
434
|
- lib/sequel/adapters/odbc/db2.rb
|
|
433
435
|
- lib/sequel/adapters/odbc/mssql.rb
|
|
436
|
+
- lib/sequel/adapters/odbc/oracle.rb
|
|
434
437
|
- lib/sequel/adapters/odbc/progress.rb
|
|
435
438
|
- lib/sequel/adapters/oracle.rb
|
|
436
439
|
- lib/sequel/adapters/postgres.rb
|
|
@@ -493,6 +496,7 @@ files:
|
|
|
493
496
|
- lib/sequel/dataset/sql.rb
|
|
494
497
|
- lib/sequel/deprecated.rb
|
|
495
498
|
- lib/sequel/exceptions.rb
|
|
499
|
+
- lib/sequel/extensions/_deprecated_identifier_mangling.rb
|
|
496
500
|
- lib/sequel/extensions/_model_constraint_validations.rb
|
|
497
501
|
- lib/sequel/extensions/_model_pg_row.rb
|
|
498
502
|
- lib/sequel/extensions/_pretty_table.rb
|
|
@@ -594,6 +598,7 @@ files:
|
|
|
594
598
|
- lib/sequel/plugins/class_table_inheritance.rb
|
|
595
599
|
- lib/sequel/plugins/column_conflicts.rb
|
|
596
600
|
- lib/sequel/plugins/column_select.rb
|
|
601
|
+
- lib/sequel/plugins/columns_updated.rb
|
|
597
602
|
- lib/sequel/plugins/composition.rb
|
|
598
603
|
- lib/sequel/plugins/constraint_validations.rb
|
|
599
604
|
- lib/sequel/plugins/csv_serializer.rb
|
|
@@ -654,6 +659,7 @@ files:
|
|
|
654
659
|
- lib/sequel/plugins/uuid.rb
|
|
655
660
|
- lib/sequel/plugins/validate_associated.rb
|
|
656
661
|
- lib/sequel/plugins/validation_class_methods.rb
|
|
662
|
+
- lib/sequel/plugins/validation_contexts.rb
|
|
657
663
|
- lib/sequel/plugins/validation_helpers.rb
|
|
658
664
|
- lib/sequel/plugins/xml_serializer.rb
|
|
659
665
|
- lib/sequel/sql.rb
|
|
@@ -687,6 +693,8 @@ files:
|
|
|
687
693
|
- spec/core_extensions_spec.rb
|
|
688
694
|
- spec/core_model_spec.rb
|
|
689
695
|
- spec/core_spec.rb
|
|
696
|
+
- spec/deprecation_helper.rb
|
|
697
|
+
- spec/extensions/_deprecated_identifier_mangling_spec.rb
|
|
690
698
|
- spec/extensions/accessed_columns_spec.rb
|
|
691
699
|
- spec/extensions/active_model_spec.rb
|
|
692
700
|
- spec/extensions/after_initialize_spec.rb
|
|
@@ -705,6 +713,7 @@ files:
|
|
|
705
713
|
- spec/extensions/column_conflicts_spec.rb
|
|
706
714
|
- spec/extensions/column_select_spec.rb
|
|
707
715
|
- spec/extensions/columns_introspection_spec.rb
|
|
716
|
+
- spec/extensions/columns_updated_spec.rb
|
|
708
717
|
- spec/extensions/composition_spec.rb
|
|
709
718
|
- spec/extensions/connection_expiration_spec.rb
|
|
710
719
|
- spec/extensions/connection_validator_spec.rb
|
|
@@ -829,6 +838,7 @@ files:
|
|
|
829
838
|
- spec/extensions/uuid_spec.rb
|
|
830
839
|
- spec/extensions/validate_associated_spec.rb
|
|
831
840
|
- spec/extensions/validation_class_methods_spec.rb
|
|
841
|
+
- spec/extensions/validation_contexts_spec.rb
|
|
832
842
|
- spec/extensions/validation_helpers_spec.rb
|
|
833
843
|
- spec/extensions/xml_serializer_spec.rb
|
|
834
844
|
- spec/files/bad_down_migration/001_create_alt_basic.rb
|
|
@@ -943,7 +953,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
943
953
|
version: '0'
|
|
944
954
|
requirements: []
|
|
945
955
|
rubyforge_project:
|
|
946
|
-
rubygems_version: 2.6.
|
|
956
|
+
rubygems_version: 2.6.11
|
|
947
957
|
signing_key:
|
|
948
958
|
specification_version: 4
|
|
949
959
|
summary: The Database Toolkit for Ruby
|