sequel 5.3.0 → 5.4.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 +5 -5
- data/CHANGELOG +30 -0
- data/bin/sequel +13 -0
- data/doc/cheat_sheet.rdoc +1 -0
- data/doc/dataset_filtering.rdoc +1 -1
- data/doc/querying.rdoc +8 -11
- data/doc/release_notes/5.4.0.txt +80 -0
- data/doc/testing.rdoc +2 -0
- data/lib/sequel/adapters/shared/db2.rb +6 -5
- data/lib/sequel/adapters/shared/mssql.rb +5 -8
- data/lib/sequel/adapters/shared/mysql.rb +4 -8
- data/lib/sequel/adapters/shared/oracle.rb +1 -1
- data/lib/sequel/adapters/shared/postgres.rb +5 -3
- data/lib/sequel/adapters/shared/sqlanywhere.rb +1 -6
- data/lib/sequel/adapters/shared/sqlite.rb +2 -0
- data/lib/sequel/database/connecting.rb +1 -1
- data/lib/sequel/database/schema_methods.rb +10 -1
- data/lib/sequel/dataset/query.rb +1 -2
- data/lib/sequel/extensions/date_arithmetic.rb +27 -10
- data/lib/sequel/extensions/datetime_parse_to_time.rb +37 -0
- data/lib/sequel/extensions/index_caching.rb +107 -0
- data/lib/sequel/extensions/null_dataset.rb +3 -1
- data/lib/sequel/extensions/pg_timestamptz.rb +26 -0
- data/lib/sequel/model/base.rb +2 -2
- data/lib/sequel/plugins/class_table_inheritance.rb +11 -3
- data/lib/sequel/plugins/json_serializer.rb +2 -2
- data/lib/sequel/plugins/xml_serializer.rb +1 -1
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/postgres_spec.rb +1 -1
- data/spec/adapters/spec_helper.rb +3 -0
- data/spec/adapters/sqlite_spec.rb +1 -1
- data/spec/bin_spec.rb +9 -0
- data/spec/core/connection_pool_spec.rb +2 -2
- data/spec/core/dataset_spec.rb +1 -6
- data/spec/extensions/class_table_inheritance_spec.rb +52 -2
- data/spec/extensions/date_arithmetic_spec.rb +15 -1
- data/spec/extensions/datetime_parse_to_time_spec.rb +169 -0
- data/spec/extensions/index_caching_spec.rb +66 -0
- data/spec/extensions/json_serializer_spec.rb +5 -0
- data/spec/extensions/null_dataset_spec.rb +5 -0
- data/spec/extensions/pg_extended_date_support_spec.rb +4 -0
- data/spec/extensions/pg_timestamptz_spec.rb +17 -0
- data/spec/extensions/xml_serializer_spec.rb +7 -0
- data/spec/integration/dataset_test.rb +6 -0
- data/spec/integration/prepared_statement_test.rb +1 -1
- data/spec/integration/schema_test.rb +19 -17
- data/spec/integration/spec_helper.rb +4 -0
- data/spec/model/record_spec.rb +28 -0
- metadata +11 -3
data/spec/model/record_spec.rb
CHANGED
@@ -100,6 +100,34 @@ describe "Model#save" do
|
|
100
100
|
DB.sqls.must_equal ["INSERT INTO items (y) VALUES (2) RETURNING *"]
|
101
101
|
end
|
102
102
|
|
103
|
+
it "should issue regular insert query if insert_select returns nil" do
|
104
|
+
@c.dataset = @c.dataset.with_fetch(:id=>4, :x=>2).with_autoid(4).with_extend do
|
105
|
+
def supports_insert_select?; true end
|
106
|
+
def insert_select(hash)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
o = @c.new(:x => 1)
|
110
|
+
o.save
|
111
|
+
|
112
|
+
DB.sqls.must_equal ["INSERT INTO items (x) VALUES (1)", "SELECT * FROM items WHERE id = 4"]
|
113
|
+
o.values.must_equal(:id=>4, :x=>2)
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should assume insert statement already ran if insert_select returns false" do
|
117
|
+
@c.dataset = @c.dataset.with_fetch(:y=>2).with_extend do
|
118
|
+
def supports_insert_select?; true end
|
119
|
+
def insert_select(hash)
|
120
|
+
with_sql_first("INSERT INTO items (y) VALUES (2) RETURNING *")
|
121
|
+
false
|
122
|
+
end
|
123
|
+
end
|
124
|
+
o = @c.new(:x => 1)
|
125
|
+
o.save
|
126
|
+
|
127
|
+
o.values.must_equal(:x=>1)
|
128
|
+
DB.sqls.must_equal ["INSERT INTO items (y) VALUES (2) RETURNING *"]
|
129
|
+
end
|
130
|
+
|
103
131
|
it "should not use dataset's insert_select method if specific columns are selected" do
|
104
132
|
@c.dataset = @c.dataset.select(:y).with_extend{def insert_select(*) raise; end}
|
105
133
|
@c.new(:x => 1).save
|
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.
|
4
|
+
version: 5.4.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:
|
11
|
+
date: 2018-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -254,6 +254,7 @@ extra_rdoc_files:
|
|
254
254
|
- doc/release_notes/5.1.0.txt
|
255
255
|
- doc/release_notes/5.2.0.txt
|
256
256
|
- doc/release_notes/5.3.0.txt
|
257
|
+
- doc/release_notes/5.4.0.txt
|
257
258
|
files:
|
258
259
|
- CHANGELOG
|
259
260
|
- MIT-LICENSE
|
@@ -402,6 +403,7 @@ files:
|
|
402
403
|
- doc/release_notes/5.1.0.txt
|
403
404
|
- doc/release_notes/5.2.0.txt
|
404
405
|
- doc/release_notes/5.3.0.txt
|
406
|
+
- doc/release_notes/5.4.0.txt
|
405
407
|
- doc/schema_modification.rdoc
|
406
408
|
- doc/security.rdoc
|
407
409
|
- doc/sharding.rdoc
|
@@ -505,6 +507,7 @@ files:
|
|
505
507
|
- lib/sequel/extensions/current_datetime_timestamp.rb
|
506
508
|
- lib/sequel/extensions/dataset_source_alias.rb
|
507
509
|
- lib/sequel/extensions/date_arithmetic.rb
|
510
|
+
- lib/sequel/extensions/datetime_parse_to_time.rb
|
508
511
|
- lib/sequel/extensions/duplicate_columns_handler.rb
|
509
512
|
- lib/sequel/extensions/empty_array_consider_nulls.rb
|
510
513
|
- lib/sequel/extensions/error_sql.rb
|
@@ -514,6 +517,7 @@ files:
|
|
514
517
|
- lib/sequel/extensions/graph_each.rb
|
515
518
|
- lib/sequel/extensions/identifier_mangling.rb
|
516
519
|
- lib/sequel/extensions/implicit_subquery.rb
|
520
|
+
- lib/sequel/extensions/index_caching.rb
|
517
521
|
- lib/sequel/extensions/inflector.rb
|
518
522
|
- lib/sequel/extensions/looser_typecasting.rb
|
519
523
|
- lib/sequel/extensions/migration.rb
|
@@ -539,6 +543,7 @@ files:
|
|
539
543
|
- lib/sequel/extensions/pg_row.rb
|
540
544
|
- lib/sequel/extensions/pg_row_ops.rb
|
541
545
|
- lib/sequel/extensions/pg_static_cache_updater.rb
|
546
|
+
- lib/sequel/extensions/pg_timestamptz.rb
|
542
547
|
- lib/sequel/extensions/pretty_table.rb
|
543
548
|
- lib/sequel/extensions/query.rb
|
544
549
|
- lib/sequel/extensions/round_timestamps.rb
|
@@ -705,6 +710,7 @@ files:
|
|
705
710
|
- spec/extensions/dataset_associations_spec.rb
|
706
711
|
- spec/extensions/dataset_source_alias_spec.rb
|
707
712
|
- spec/extensions/date_arithmetic_spec.rb
|
713
|
+
- spec/extensions/datetime_parse_to_time_spec.rb
|
708
714
|
- spec/extensions/def_dataset_method_spec.rb
|
709
715
|
- spec/extensions/defaults_setter_spec.rb
|
710
716
|
- spec/extensions/delay_add_association_spec.rb
|
@@ -722,6 +728,7 @@ files:
|
|
722
728
|
- spec/extensions/hook_class_methods_spec.rb
|
723
729
|
- spec/extensions/identifier_mangling_spec.rb
|
724
730
|
- spec/extensions/implicit_subquery_spec.rb
|
731
|
+
- spec/extensions/index_caching_spec.rb
|
725
732
|
- spec/extensions/inflector_spec.rb
|
726
733
|
- spec/extensions/input_transformer_spec.rb
|
727
734
|
- spec/extensions/insert_returning_select_spec.rb
|
@@ -760,6 +767,7 @@ files:
|
|
760
767
|
- spec/extensions/pg_row_plugin_spec.rb
|
761
768
|
- spec/extensions/pg_row_spec.rb
|
762
769
|
- spec/extensions/pg_static_cache_updater_spec.rb
|
770
|
+
- spec/extensions/pg_timestamptz_spec.rb
|
763
771
|
- spec/extensions/prepared_statements_safe_spec.rb
|
764
772
|
- spec/extensions/prepared_statements_spec.rb
|
765
773
|
- spec/extensions/pretty_table_spec.rb
|
@@ -925,7 +933,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
925
933
|
version: '0'
|
926
934
|
requirements: []
|
927
935
|
rubyforge_project:
|
928
|
-
rubygems_version: 2.
|
936
|
+
rubygems_version: 2.7.3
|
929
937
|
signing_key:
|
930
938
|
specification_version: 4
|
931
939
|
summary: The Database Toolkit for Ruby
|