sequel 5.23.0 → 5.28.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.
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