sequel 5.23.0 → 5.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +62 -0
  3. data/README.rdoc +1 -1
  4. data/doc/cheat_sheet.rdoc +1 -0
  5. data/doc/postgresql.rdoc +2 -2
  6. data/doc/release_notes/5.24.0.txt +56 -0
  7. data/doc/release_notes/5.25.0.txt +32 -0
  8. data/doc/release_notes/5.26.0.txt +35 -0
  9. data/doc/release_notes/5.27.0.txt +21 -0
  10. data/doc/release_notes/5.28.0.txt +16 -0
  11. data/doc/testing.rdoc +11 -6
  12. data/lib/sequel/adapters/jdbc.rb +7 -1
  13. data/lib/sequel/adapters/jdbc/postgresql.rb +7 -13
  14. data/lib/sequel/adapters/mysql2.rb +0 -1
  15. data/lib/sequel/adapters/shared/mssql.rb +4 -2
  16. data/lib/sequel/adapters/shared/postgres.rb +30 -7
  17. data/lib/sequel/adapters/shared/sqlite.rb +7 -2
  18. data/lib/sequel/adapters/utils/mysql_mysql2.rb +1 -1
  19. data/lib/sequel/database/logging.rb +7 -1
  20. data/lib/sequel/database/schema_generator.rb +11 -2
  21. data/lib/sequel/database/schema_methods.rb +2 -0
  22. data/lib/sequel/dataset/features.rb +6 -0
  23. data/lib/sequel/dataset/query.rb +15 -2
  24. data/lib/sequel/dataset/sql.rb +17 -4
  25. data/lib/sequel/extensions/any_not_empty.rb +45 -0
  26. data/lib/sequel/extensions/exclude_or_null.rb +68 -0
  27. data/lib/sequel/extensions/pg_array_ops.rb +10 -6
  28. data/lib/sequel/extensions/pg_enum.rb +4 -1
  29. data/lib/sequel/extensions/pg_json.rb +1 -1
  30. data/lib/sequel/extensions/pg_json_ops.rb +124 -0
  31. data/lib/sequel/extensions/pg_range.rb +9 -0
  32. data/lib/sequel/extensions/sql_comments.rb +2 -2
  33. data/lib/sequel/model/base.rb +12 -5
  34. data/lib/sequel/plugins/association_multi_add_remove.rb +83 -0
  35. data/lib/sequel/plugins/caching.rb +3 -0
  36. data/lib/sequel/plugins/csv_serializer.rb +26 -9
  37. data/lib/sequel/plugins/dirty.rb +3 -9
  38. data/lib/sequel/plugins/nested_attributes.rb +7 -0
  39. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +89 -30
  40. data/lib/sequel/plugins/sharding.rb +11 -5
  41. data/lib/sequel/plugins/static_cache.rb +8 -3
  42. data/lib/sequel/plugins/static_cache_cache.rb +53 -0
  43. data/lib/sequel/plugins/typecast_on_load.rb +3 -2
  44. data/lib/sequel/sql.rb +4 -1
  45. data/lib/sequel/version.rb +1 -1
  46. data/spec/adapters/postgres_spec.rb +145 -17
  47. data/spec/adapters/sqlite_spec.rb +1 -1
  48. data/spec/bin_spec.rb +1 -1
  49. data/spec/core/database_spec.rb +20 -1
  50. data/spec/core/expression_filters_spec.rb +26 -7
  51. data/spec/core/schema_spec.rb +18 -0
  52. data/spec/core/spec_helper.rb +1 -1
  53. data/spec/core_extensions_spec.rb +1 -1
  54. data/spec/extensions/any_not_empty_spec.rb +23 -0
  55. data/spec/extensions/association_multi_add_remove_spec.rb +1041 -0
  56. data/spec/extensions/dirty_spec.rb +33 -0
  57. data/spec/extensions/exclude_or_null_spec.rb +15 -0
  58. data/spec/extensions/insert_conflict_spec.rb +26 -0
  59. data/spec/extensions/nested_attributes_spec.rb +48 -0
  60. data/spec/extensions/pg_array_ops_spec.rb +3 -3
  61. data/spec/extensions/pg_auto_constraint_validations_spec.rb +37 -0
  62. data/spec/extensions/pg_json_ops_spec.rb +67 -0
  63. data/spec/extensions/pg_range_spec.rb +35 -21
  64. data/spec/extensions/sharding_spec.rb +8 -0
  65. data/spec/extensions/spec_helper.rb +1 -1
  66. data/spec/extensions/static_cache_cache_spec.rb +35 -0
  67. data/spec/guards_helper.rb +1 -1
  68. data/spec/integration/dataset_test.rb +57 -17
  69. data/spec/integration/plugin_test.rb +1 -1
  70. data/spec/integration/schema_test.rb +9 -0
  71. data/spec/integration/spec_helper.rb +7 -1
  72. data/spec/model/spec_helper.rb +1 -1
  73. metadata +35 -3
@@ -2393,7 +2393,7 @@ describe "string_agg extension" do
2393
2393
  cspecify "should have string_agg return aggregated concatenation for distinct values", :mssql, :sqlite, :oracle, :db2, :derby do
2394
2394
  @ds.select_group(:id).select_append(Sequel.string_agg(:s).order(:s).distinct.as(:v)).map([:id, :v]).must_equal [[1, 'a,b,c'], [2, 'aa,bb']]
2395
2395
  end
2396
- end
2396
+ end if (DB.database_type != :postgres || DB.server_version >= 90000)
2397
2397
 
2398
2398
  describe "insert_conflict plugin" do
2399
2399
  before(:all) do
@@ -634,6 +634,15 @@ describe "Database schema modifiers" do
634
634
  @ds.all.must_equal [{:id=>10}, {:id=>20}]
635
635
  end
636
636
 
637
+ it "should set column defaults correctly if column has existing default" do
638
+ @db.create_table!(:items){Integer :id, :default=>10}
639
+ @ds.insert
640
+ @ds.all.must_equal [{:id=>10}]
641
+ @db.alter_table(:items){set_column_default :id, 20}
642
+ @ds.insert
643
+ @ds.all.must_equal [{:id=>10}, {:id=>20}]
644
+ end
645
+
637
646
  it "should set column defaults to nil correctly" do
638
647
  @db.create_table!(:items){Integer :id}
639
648
  @ds.insert(:id=>10)
@@ -62,4 +62,10 @@ if ENV['SEQUEL_FREEZE_DATABASE']
62
62
  DB.freeze
63
63
  end
64
64
 
65
- puts "running #{defined?(SEQUEL_ADAPTER_TEST) ? SEQUEL_ADAPTER_TEST : "integration (database type: #{DB.database_type})"} specs on #{RUBY_ENGINE} #{defined?(JRUBY_VERSION) ? JRUBY_VERSION : RUBY_VERSION} with #{DB.adapter_scheme} adapter"
65
+ version = if DB.respond_to?(:server_version)
66
+ DB.server_version
67
+ elsif DB.respond_to?(:sqlite_version)
68
+ DB.sqlite_version
69
+ end
70
+
71
+ puts "running #{defined?(SEQUEL_ADAPTER_TEST) ? SEQUEL_ADAPTER_TEST : "integration (database type: #{DB.database_type})"} specs on #{RUBY_ENGINE} #{defined?(JRUBY_VERSION) ? JRUBY_VERSION : RUBY_VERSION} with #{DB.adapter_scheme} adapter#{" (database version: #{version})" if version}"
@@ -7,7 +7,7 @@ Sequel::Deprecation.backtrace_filter = lambda{|line, lineno| lineno < 4 || line
7
7
 
8
8
  ENV['MT_NO_PLUGINS'] = '1' # Work around stupid autoloading of plugins
9
9
  gem 'minitest'
10
- require 'minitest/autorun'
10
+ require 'minitest/global_expectations/autorun'
11
11
  require 'minitest/hooks/default'
12
12
 
13
13
  require_relative '../deprecation_helper'
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: 5.23.0
4
+ version: 5.28.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: 2019-08-01 00:00:00.000000000 Z
11
+ date: 2020-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest-global_expectations
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: minitest-shared_description
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -207,6 +221,11 @@ extra_rdoc_files:
207
221
  - doc/release_notes/5.21.0.txt
208
222
  - doc/release_notes/5.22.0.txt
209
223
  - doc/release_notes/5.23.0.txt
224
+ - doc/release_notes/5.24.0.txt
225
+ - doc/release_notes/5.25.0.txt
226
+ - doc/release_notes/5.26.0.txt
227
+ - doc/release_notes/5.27.0.txt
228
+ - doc/release_notes/5.28.0.txt
210
229
  files:
211
230
  - CHANGELOG
212
231
  - MIT-LICENSE
@@ -301,6 +320,11 @@ files:
301
320
  - doc/release_notes/5.21.0.txt
302
321
  - doc/release_notes/5.22.0.txt
303
322
  - doc/release_notes/5.23.0.txt
323
+ - doc/release_notes/5.24.0.txt
324
+ - doc/release_notes/5.25.0.txt
325
+ - doc/release_notes/5.26.0.txt
326
+ - doc/release_notes/5.27.0.txt
327
+ - doc/release_notes/5.28.0.txt
304
328
  - doc/release_notes/5.3.0.txt
305
329
  - doc/release_notes/5.4.0.txt
306
330
  - doc/release_notes/5.5.0.txt
@@ -399,6 +423,7 @@ files:
399
423
  - lib/sequel/extensions/_model_constraint_validations.rb
400
424
  - lib/sequel/extensions/_model_pg_row.rb
401
425
  - lib/sequel/extensions/_pretty_table.rb
426
+ - lib/sequel/extensions/any_not_empty.rb
402
427
  - lib/sequel/extensions/arbitrary_servers.rb
403
428
  - lib/sequel/extensions/auto_literal_strings.rb
404
429
  - lib/sequel/extensions/blank.rb
@@ -419,6 +444,7 @@ files:
419
444
  - lib/sequel/extensions/error_sql.rb
420
445
  - lib/sequel/extensions/escaped_like.rb
421
446
  - lib/sequel/extensions/eval_inspect.rb
447
+ - lib/sequel/extensions/exclude_or_null.rb
422
448
  - lib/sequel/extensions/freeze_datasets.rb
423
449
  - lib/sequel/extensions/from_block.rb
424
450
  - lib/sequel/extensions/graph_each.rb
@@ -488,6 +514,7 @@ files:
488
514
  - lib/sequel/plugins/active_model.rb
489
515
  - lib/sequel/plugins/after_initialize.rb
490
516
  - lib/sequel/plugins/association_dependencies.rb
517
+ - lib/sequel/plugins/association_multi_add_remove.rb
491
518
  - lib/sequel/plugins/association_pks.rb
492
519
  - lib/sequel/plugins/association_proxies.rb
493
520
  - lib/sequel/plugins/auto_validations.rb
@@ -542,6 +569,7 @@ files:
542
569
  - lib/sequel/plugins/skip_create_refresh.rb
543
570
  - lib/sequel/plugins/split_values.rb
544
571
  - lib/sequel/plugins/static_cache.rb
572
+ - lib/sequel/plugins/static_cache_cache.rb
545
573
  - lib/sequel/plugins/string_stripper.rb
546
574
  - lib/sequel/plugins/subclasses.rb
547
575
  - lib/sequel/plugins/subset_conditions.rb
@@ -595,8 +623,10 @@ files:
595
623
  - spec/extensions/accessed_columns_spec.rb
596
624
  - spec/extensions/active_model_spec.rb
597
625
  - spec/extensions/after_initialize_spec.rb
626
+ - spec/extensions/any_not_empty_spec.rb
598
627
  - spec/extensions/arbitrary_servers_spec.rb
599
628
  - spec/extensions/association_dependencies_spec.rb
629
+ - spec/extensions/association_multi_add_remove_spec.rb
600
630
  - spec/extensions/association_pks_spec.rb
601
631
  - spec/extensions/association_proxies_spec.rb
602
632
  - spec/extensions/auto_literal_strings_spec.rb
@@ -637,6 +667,7 @@ files:
637
667
  - spec/extensions/error_sql_spec.rb
638
668
  - spec/extensions/escaped_like_spec.rb
639
669
  - spec/extensions/eval_inspect_spec.rb
670
+ - spec/extensions/exclude_or_null_spec.rb
640
671
  - spec/extensions/finder_spec.rb
641
672
  - spec/extensions/force_encoding_spec.rb
642
673
  - spec/extensions/freeze_datasets_spec.rb
@@ -712,6 +743,7 @@ files:
712
743
  - spec/extensions/split_values_spec.rb
713
744
  - spec/extensions/sql_comments_spec.rb
714
745
  - spec/extensions/sql_expr_spec.rb
746
+ - spec/extensions/static_cache_cache_spec.rb
715
747
  - spec/extensions/static_cache_spec.rb
716
748
  - spec/extensions/string_agg_spec.rb
717
749
  - spec/extensions/string_date_time_spec.rb
@@ -857,7 +889,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
857
889
  - !ruby/object:Gem::Version
858
890
  version: '0'
859
891
  requirements: []
860
- rubygems_version: 3.0.3
892
+ rubygems_version: 3.1.2
861
893
  signing_key:
862
894
  specification_version: 4
863
895
  summary: The Database Toolkit for Ruby