sequel 5.2.0 → 5.3.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +32 -0
  3. data/bin/sequel +5 -6
  4. data/doc/release_notes/5.3.0.txt +121 -0
  5. data/doc/schema_modification.rdoc +15 -4
  6. data/doc/testing.rdoc +1 -0
  7. data/lib/sequel/adapters/jdbc.rb +4 -0
  8. data/lib/sequel/adapters/jdbc/postgresql.rb +15 -0
  9. data/lib/sequel/adapters/oracle.rb +2 -1
  10. data/lib/sequel/adapters/postgres.rb +4 -0
  11. data/lib/sequel/adapters/shared/mysql.rb +38 -3
  12. data/lib/sequel/adapters/shared/postgres.rb +15 -6
  13. data/lib/sequel/adapters/shared/sqlite.rb +10 -0
  14. data/lib/sequel/adapters/utils/mysql_mysql2.rb +2 -0
  15. data/lib/sequel/connection_pool.rb +12 -0
  16. data/lib/sequel/database/misc.rb +13 -0
  17. data/lib/sequel/dataset/dataset_module.rb +1 -1
  18. data/lib/sequel/dataset/features.rb +5 -0
  19. data/lib/sequel/dataset/query.rb +20 -6
  20. data/lib/sequel/dataset/sql.rb +3 -0
  21. data/lib/sequel/extensions/pg_extended_date_support.rb +15 -0
  22. data/lib/sequel/extensions/synchronize_sql.rb +45 -0
  23. data/lib/sequel/model/associations.rb +1 -0
  24. data/lib/sequel/model/base.rb +4 -11
  25. data/lib/sequel/plugins/validation_helpers.rb +2 -2
  26. data/lib/sequel/version.rb +1 -1
  27. data/spec/adapters/postgres_spec.rb +5 -34
  28. data/spec/core/database_spec.rb +32 -0
  29. data/spec/core/dataset_spec.rb +19 -0
  30. data/spec/core/mock_adapter_spec.rb +65 -0
  31. data/spec/extensions/association_pks_spec.rb +26 -33
  32. data/spec/extensions/class_table_inheritance_spec.rb +18 -32
  33. data/spec/extensions/composition_spec.rb +7 -23
  34. data/spec/extensions/list_spec.rb +4 -5
  35. data/spec/extensions/many_through_many_spec.rb +24 -32
  36. data/spec/extensions/optimistic_locking_spec.rb +1 -1
  37. data/spec/extensions/pg_array_associations_spec.rb +18 -25
  38. data/spec/extensions/pg_extended_date_support_spec.rb +13 -0
  39. data/spec/extensions/pg_hstore_spec.rb +2 -2
  40. data/spec/extensions/prepared_statements_safe_spec.rb +6 -6
  41. data/spec/extensions/pretty_table_spec.rb +39 -8
  42. data/spec/extensions/rcte_tree_spec.rb +22 -33
  43. data/spec/extensions/schema_dumper_spec.rb +42 -31
  44. data/spec/extensions/serialization_spec.rb +3 -3
  45. data/spec/extensions/synchronize_sql_spec.rb +124 -0
  46. data/spec/extensions/timestamps_spec.rb +2 -4
  47. data/spec/extensions/update_or_create_spec.rb +11 -15
  48. data/spec/extensions/uuid_spec.rb +2 -3
  49. data/spec/extensions/xml_serializer_spec.rb +5 -10
  50. data/spec/integration/database_test.rb +1 -1
  51. data/spec/integration/dataset_test.rb +7 -0
  52. data/spec/integration/plugin_test.rb +1 -1
  53. data/spec/integration/schema_test.rb +3 -3
  54. data/spec/integration/spec_helper.rb +4 -0
  55. data/spec/model/base_spec.rb +6 -0
  56. data/spec/model/eager_loading_spec.rb +31 -6
  57. data/spec/model/model_spec.rb +9 -19
  58. data/spec/model/record_spec.rb +4 -8
  59. metadata +6 -2
@@ -146,10 +146,8 @@ describe "Model#save" do
146
146
  o = @c.new(:x => 11)
147
147
  def o.autoincrementing_primary_key() :y end
148
148
  o.save
149
- sqls = DB.sqls
150
- sqls.length.must_equal 2
151
- sqls.first.must_equal "INSERT INTO items (x) VALUES (11)"
152
- sqls.last.must_match %r{SELECT \* FROM items WHERE \(\([xy] = 1[13]\) AND \([xy] = 1[13]\)\) LIMIT 1}
149
+ DB.sqls.must_equal ["INSERT INTO items (x) VALUES (11)",
150
+ 'SELECT * FROM items WHERE ((x = 11) AND (y = 13)) LIMIT 1']
153
151
  end
154
152
 
155
153
  it "should update a record for an existing model instance" do
@@ -837,7 +835,7 @@ describe Sequel::Model, "#this" do
837
835
  it "should support composite primary keys" do
838
836
  @example.set_primary_key [:x, :y]
839
837
  instance = @example.load(:x => 4, :y => 5)
840
- instance.this.sql.must_match(/SELECT \* FROM examples WHERE \(\([xy] = [45]\) AND \([xy] = [45]\)\) LIMIT 1/)
838
+ instance.this.sql.must_equal 'SELECT * FROM examples WHERE ((x = 4) AND (y = 5)) LIMIT 1'
841
839
  end
842
840
  end
843
841
 
@@ -1223,9 +1221,7 @@ describe Sequel::Model, "#update_fields" do
1223
1221
  it "should set only the given fields, and then save the changes to the record" do
1224
1222
  @o1.update_fields({:x => 1, :y => 2, :z=>3, :id=>4}, [:x, :y])
1225
1223
  @o1.values.must_equal(:x => 1, :y => 2, :id=>1)
1226
- sqls = DB.sqls
1227
- sqls.pop.must_match(/UPDATE items SET [xy] = [12], [xy] = [12] WHERE \(id = 1\)/)
1228
- sqls.must_equal []
1224
+ DB.sqls.must_equal ['UPDATE items SET x = 1, y = 2 WHERE (id = 1)']
1229
1225
 
1230
1226
  @o1.update_fields({:x => 1, :y => 5, :z=>6, :id=>7}, [:x, :y])
1231
1227
  @o1.values.must_equal(:x => 1, :y => 5, :id=>1)
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.2.0
4
+ version: 5.3.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-10-27 00:00:00.000000000 Z
11
+ date: 2017-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -253,6 +253,7 @@ extra_rdoc_files:
253
253
  - doc/release_notes/5.0.0.txt
254
254
  - doc/release_notes/5.1.0.txt
255
255
  - doc/release_notes/5.2.0.txt
256
+ - doc/release_notes/5.3.0.txt
256
257
  files:
257
258
  - CHANGELOG
258
259
  - MIT-LICENSE
@@ -400,6 +401,7 @@ files:
400
401
  - doc/release_notes/5.0.0.txt
401
402
  - doc/release_notes/5.1.0.txt
402
403
  - doc/release_notes/5.2.0.txt
404
+ - doc/release_notes/5.3.0.txt
403
405
  - doc/schema_modification.rdoc
404
406
  - doc/security.rdoc
405
407
  - doc/sharding.rdoc
@@ -556,6 +558,7 @@ files:
556
558
  - lib/sequel/extensions/symbol_aref_refinement.rb
557
559
  - lib/sequel/extensions/symbol_as.rb
558
560
  - lib/sequel/extensions/symbol_as_refinement.rb
561
+ - lib/sequel/extensions/synchronize_sql.rb
559
562
  - lib/sequel/extensions/thread_local_timezones.rb
560
563
  - lib/sequel/extensions/to_dot.rb
561
564
  - lib/sequel/extensions/virtual_row_method_block.rb
@@ -790,6 +793,7 @@ files:
790
793
  - spec/extensions/subset_conditions_spec.rb
791
794
  - spec/extensions/symbol_aref_refinement_spec.rb
792
795
  - spec/extensions/symbol_as_refinement_spec.rb
796
+ - spec/extensions/synchronize_sql_spec.rb
793
797
  - spec/extensions/table_select_spec.rb
794
798
  - spec/extensions/tactical_eager_loading_spec.rb
795
799
  - spec/extensions/thread_local_timezones_spec.rb