sequel 4.47.0 → 4.48.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 +134 -0
- data/Rakefile +1 -1
- data/doc/release_notes/4.48.0.txt +293 -0
- data/lib/sequel/adapters/ado/access.rb +2 -1
- data/lib/sequel/adapters/do/postgres.rb +5 -2
- data/lib/sequel/adapters/ibmdb.rb +24 -7
- data/lib/sequel/adapters/jdbc.rb +36 -22
- data/lib/sequel/adapters/jdbc/db2.rb +12 -3
- data/lib/sequel/adapters/jdbc/derby.rb +4 -5
- data/lib/sequel/adapters/jdbc/oracle.rb +16 -2
- data/lib/sequel/adapters/jdbc/postgresql.rb +43 -18
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +9 -7
- data/lib/sequel/adapters/jdbc/sqlserver.rb +11 -4
- data/lib/sequel/adapters/mock.rb +24 -19
- data/lib/sequel/adapters/mysql.rb +17 -16
- data/lib/sequel/adapters/mysql2.rb +4 -5
- data/lib/sequel/adapters/oracle.rb +5 -9
- data/lib/sequel/adapters/postgres.rb +89 -102
- data/lib/sequel/adapters/shared/db2.rb +22 -6
- data/lib/sequel/adapters/shared/mssql.rb +5 -4
- data/lib/sequel/adapters/shared/mysql.rb +75 -24
- data/lib/sequel/adapters/shared/postgres.rb +196 -94
- data/lib/sequel/adapters/shared/sqlanywhere.rb +23 -10
- data/lib/sequel/adapters/shared/sqlite.rb +72 -82
- data/lib/sequel/adapters/sqlanywhere.rb +4 -1
- data/lib/sequel/adapters/sqlite.rb +5 -3
- data/lib/sequel/adapters/swift/postgres.rb +5 -2
- data/lib/sequel/adapters/tinytds.rb +0 -5
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +1 -1
- data/lib/sequel/adapters/utils/pg_types.rb +2 -76
- data/lib/sequel/core.rb +2 -2
- data/lib/sequel/database/connecting.rb +5 -5
- data/lib/sequel/database/dataset.rb +6 -3
- data/lib/sequel/database/misc.rb +1 -1
- data/lib/sequel/database/query.rb +3 -0
- data/lib/sequel/database/schema_methods.rb +1 -1
- data/lib/sequel/dataset/actions.rb +18 -10
- data/lib/sequel/dataset/graph.rb +1 -1
- data/lib/sequel/dataset/misc.rb +1 -0
- data/lib/sequel/dataset/prepared_statements.rb +3 -3
- data/lib/sequel/dataset/query.rb +19 -8
- data/lib/sequel/extensions/core_extensions.rb +4 -1
- data/lib/sequel/extensions/duplicate_columns_handler.rb +1 -1
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +3 -0
- data/lib/sequel/extensions/filter_having.rb +2 -0
- data/lib/sequel/extensions/freeze_datasets.rb +2 -0
- data/lib/sequel/extensions/from_block.rb +1 -1
- data/lib/sequel/extensions/graph_each.rb +2 -2
- data/lib/sequel/extensions/hash_aliases.rb +2 -0
- data/lib/sequel/extensions/identifier_mangling.rb +0 -7
- data/lib/sequel/extensions/meta_def.rb +2 -0
- data/lib/sequel/extensions/migration.rb +6 -6
- data/lib/sequel/extensions/no_auto_literal_strings.rb +1 -1
- data/lib/sequel/extensions/pagination.rb +1 -1
- data/lib/sequel/extensions/pg_array.rb +207 -130
- data/lib/sequel/extensions/pg_hstore.rb +38 -20
- data/lib/sequel/extensions/pg_inet.rb +18 -6
- data/lib/sequel/extensions/pg_interval.rb +19 -12
- data/lib/sequel/extensions/pg_json.rb +25 -14
- data/lib/sequel/extensions/pg_json_ops.rb +2 -2
- data/lib/sequel/extensions/pg_range.rb +133 -100
- data/lib/sequel/extensions/pg_range_ops.rb +4 -3
- data/lib/sequel/extensions/pg_row.rb +68 -39
- data/lib/sequel/extensions/pg_row_ops.rb +11 -5
- data/lib/sequel/extensions/query_literals.rb +2 -0
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +2 -0
- data/lib/sequel/extensions/s.rb +1 -1
- data/lib/sequel/extensions/schema_dumper.rb +24 -24
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +3 -1
- data/lib/sequel/extensions/sequel_4_dataset_methods.rb +83 -0
- data/lib/sequel/extensions/set_overrides.rb +2 -2
- data/lib/sequel/extensions/string_agg.rb +0 -1
- data/lib/sequel/extensions/symbol_aref.rb +0 -4
- data/lib/sequel/model.rb +25 -57
- data/lib/sequel/model/associations.rb +14 -5
- data/lib/sequel/model/base.rb +96 -32
- data/lib/sequel/plugins/association_pks.rb +73 -46
- data/lib/sequel/plugins/association_proxies.rb +1 -1
- data/lib/sequel/plugins/auto_validations.rb +6 -2
- data/lib/sequel/plugins/boolean_readers.rb +1 -1
- data/lib/sequel/plugins/caching.rb +19 -13
- data/lib/sequel/plugins/class_table_inheritance.rb +19 -10
- data/lib/sequel/plugins/column_conflicts.rb +7 -2
- data/lib/sequel/plugins/column_select.rb +1 -1
- data/lib/sequel/plugins/csv_serializer.rb +8 -8
- data/lib/sequel/plugins/defaults_setter.rb +10 -0
- data/lib/sequel/plugins/eager_each.rb +1 -1
- data/lib/sequel/plugins/force_encoding.rb +2 -2
- data/lib/sequel/plugins/hook_class_methods.rb +9 -12
- data/lib/sequel/plugins/identifier_columns.rb +2 -0
- data/lib/sequel/plugins/instance_filters.rb +3 -1
- data/lib/sequel/plugins/instance_hooks.rb +17 -9
- data/lib/sequel/plugins/json_serializer.rb +17 -10
- data/lib/sequel/plugins/lazy_attributes.rb +8 -7
- data/lib/sequel/plugins/modification_detection.rb +3 -0
- data/lib/sequel/plugins/nested_attributes.rb +5 -1
- data/lib/sequel/plugins/pg_array_associations.rb +5 -0
- data/lib/sequel/plugins/prepared_statements.rb +1 -0
- data/lib/sequel/plugins/rcte_tree.rb +4 -4
- data/lib/sequel/plugins/serialization.rb +3 -10
- data/lib/sequel/plugins/single_table_inheritance.rb +2 -2
- data/lib/sequel/plugins/split_values.rb +6 -5
- data/lib/sequel/plugins/static_cache.rb +31 -25
- data/lib/sequel/plugins/subset_conditions.rb +3 -1
- data/lib/sequel/plugins/table_select.rb +1 -1
- data/lib/sequel/plugins/touch.rb +2 -1
- data/lib/sequel/plugins/validation_class_methods.rb +5 -6
- data/lib/sequel/plugins/validation_helpers.rb +2 -4
- data/lib/sequel/plugins/xml_serializer.rb +4 -4
- data/lib/sequel/sql.rb +2 -2
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/db2_spec.rb +115 -14
- data/spec/adapters/mysql_spec.rb +78 -28
- data/spec/adapters/oracle_spec.rb +24 -24
- data/spec/adapters/postgres_spec.rb +38 -24
- data/spec/adapters/sqlanywhere_spec.rb +88 -86
- data/spec/adapters/sqlite_spec.rb +29 -24
- data/spec/core/connection_pool_spec.rb +17 -0
- data/spec/core/database_spec.rb +6 -0
- data/spec/core/dataset_spec.rb +46 -36
- data/spec/core/schema_spec.rb +16 -0
- data/spec/core/spec_helper.rb +1 -0
- data/spec/core_extensions_spec.rb +6 -2
- data/spec/extensions/active_model_spec.rb +1 -1
- data/spec/extensions/arbitrary_servers_spec.rb +1 -1
- data/spec/extensions/association_pks_spec.rb +34 -2
- data/spec/extensions/auto_literal_strings_spec.rb +5 -1
- data/spec/extensions/auto_validations_spec.rb +2 -0
- data/spec/extensions/boolean_readers_spec.rb +1 -1
- data/spec/extensions/boolean_subsets_spec.rb +1 -1
- data/spec/extensions/class_table_inheritance_spec.rb +48 -2
- data/spec/extensions/column_conflicts_spec.rb +11 -0
- data/spec/extensions/connection_validator_spec.rb +1 -1
- data/spec/extensions/dataset_associations_spec.rb +8 -8
- data/spec/extensions/defaults_setter_spec.rb +1 -1
- data/spec/extensions/filter_having_spec.rb +5 -3
- data/spec/extensions/hash_aliases_spec.rb +3 -1
- data/spec/extensions/identifier_columns_spec.rb +3 -1
- data/spec/extensions/implicit_subquery_spec.rb +4 -2
- data/spec/extensions/json_serializer_spec.rb +18 -0
- data/spec/extensions/lazy_attributes_spec.rb +3 -3
- data/spec/extensions/meta_def_spec.rb +9 -0
- data/spec/extensions/migration_spec.rb +3 -3
- data/spec/extensions/nested_attributes_spec.rb +14 -3
- data/spec/extensions/no_auto_literal_strings_spec.rb +8 -4
- data/spec/extensions/pg_array_associations_spec.rb +29 -18
- data/spec/extensions/pg_array_spec.rb +44 -25
- data/spec/extensions/pg_hstore_spec.rb +10 -0
- data/spec/extensions/pg_inet_spec.rb +26 -0
- data/spec/extensions/pg_interval_spec.rb +20 -0
- data/spec/extensions/pg_json_spec.rb +24 -0
- data/spec/extensions/pg_range_spec.rb +98 -14
- data/spec/extensions/pg_row_spec.rb +14 -4
- data/spec/extensions/prepared_statements_safe_spec.rb +1 -1
- data/spec/extensions/query_literals_spec.rb +3 -1
- data/spec/extensions/schema_dumper_spec.rb +96 -98
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +10 -6
- data/spec/extensions/sequel_4_dataset_methods_spec.rb +121 -0
- data/spec/extensions/single_table_inheritance_spec.rb +1 -1
- data/spec/extensions/spec_helper.rb +7 -1
- data/spec/extensions/static_cache_spec.rb +75 -24
- data/spec/extensions/string_agg_spec.rb +1 -1
- data/spec/extensions/touch_spec.rb +9 -0
- data/spec/extensions/validation_helpers_spec.rb +9 -3
- data/spec/extensions/whitelist_security_spec.rb +26 -0
- data/spec/integration/dataset_test.rb +45 -44
- data/spec/integration/plugin_test.rb +20 -0
- data/spec/integration/prepared_statement_test.rb +3 -0
- data/spec/integration/schema_test.rb +21 -1
- data/spec/integration/transaction_test.rb +40 -40
- data/spec/model/class_dataset_methods_spec.rb +14 -4
- data/spec/model/dataset_methods_spec.rb +12 -3
- data/spec/model/model_spec.rb +8 -0
- metadata +6 -4
- data/spec/adapters/firebird_spec.rb +0 -405
- data/spec/adapters/informix_spec.rb +0 -100
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b093264594c435f6dee3a24f2245dd8a84f3a739
|
|
4
|
+
data.tar.gz: 92d8d17d4d092f86d8d20d015fa86da8422005b5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 451903d4f3abb15ce7395afdb6052ba9b60e30b895b413b8bdb74067dce03a6b748c2357a89a65eda6a6620d7dce85f007fba1be4b796954ff530d744c4b927b
|
|
7
|
+
data.tar.gz: 003675d934cf08064143725513b42857aaffa99de6586a5a3bf57bb0f6d241428379a2bdc643de7eaf947c89cb4d1c2310c904e6697ad1b60023a85c6db9ec1d
|
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,137 @@
|
|
|
1
|
+
=== 4.48.0 (2017-07-01)
|
|
2
|
+
|
|
3
|
+
* Deprecate Model.<< (jeremyevans)
|
|
4
|
+
|
|
5
|
+
* Deprecate Dataset#{and,exclude_where,range,interval}, move to sequel_4_dataset_methods extension (jeremyevans)
|
|
6
|
+
|
|
7
|
+
* Make Database#indexes not include partial indexes on SQLite 3.8.8+ (jeremyevans)
|
|
8
|
+
|
|
9
|
+
* Make Database#indexes include indexes created automatically from unique constraints on SQLite 3.8.8+ (jeremyevans)
|
|
10
|
+
|
|
11
|
+
* Deprecate Sequel::Postgres::PG_TYPES, conversion procs should not be registered per-Database (jeremyevans)
|
|
12
|
+
|
|
13
|
+
* Add Database#add_conversion_proc method on PostgreSQL for registering conversion procs (jeremyevans)
|
|
14
|
+
|
|
15
|
+
* Deprecate unexpected values passed to Dataset#insert_conflict on SQLite (jeremyevans)
|
|
16
|
+
|
|
17
|
+
* Deprecate Sequel::SqlAnywhere::Dataset#convert_smallint_to_bool= method (jeremyevans)
|
|
18
|
+
|
|
19
|
+
* Deprecate Sequel::SqlAnywhere.convert_smallint_to_bool accessor (jeremyevans)
|
|
20
|
+
|
|
21
|
+
* Use savepoints around index creation if creating table inside transaction if ignore_index_errors is used (jeremyevans)
|
|
22
|
+
|
|
23
|
+
* Deprecate treating :natrual_inner join type on MySQL as NATURAL LEFT JOIN (jeremyevans)
|
|
24
|
+
|
|
25
|
+
* Deprecate Dataset#mssql_unicode_strings= on Microsoft SQL Server (jeremyevans)
|
|
26
|
+
|
|
27
|
+
* Preserve encoding when parsing PostgreSQL arrays (jeltz) (#1387)
|
|
28
|
+
|
|
29
|
+
* Deprecate external modification of Sequel::JDBC::TypeConvertor (jeremyevans)
|
|
30
|
+
|
|
31
|
+
* Deprecate Sequel::DB2.use_clob_as_blob accessor (jeremyevans)
|
|
32
|
+
|
|
33
|
+
* Add Database#use_clob_as_blob accessor on DB2 (jeremyevans)
|
|
34
|
+
|
|
35
|
+
* Deprecate SEQUEL_POSTGRES_USES_PG constant (jeremyevans)
|
|
36
|
+
|
|
37
|
+
* Do not swallow original exception if exception is raised inside Database#copy_table on PostgreSQL (jeremyevans)
|
|
38
|
+
|
|
39
|
+
* Deprecate Sequel::Postgres.client_min_messages and force_standard_strings accessors (jeremyevans)
|
|
40
|
+
|
|
41
|
+
* Deprecate Sequel::Postgres.use_iso_date_format accessor (jeremyevans)
|
|
42
|
+
|
|
43
|
+
* Do not allow connection in postgres adapter if postgres-pr driver is used and force_standard_strings is false (jeremyevans)
|
|
44
|
+
|
|
45
|
+
* Drop support for ancient postgres driver in postgres adapter, now only pg and postgres-pr drivers are supported (jeremyevans)
|
|
46
|
+
|
|
47
|
+
* Deprecate Sequel::MySQL.convert_invalid_date_time accessor (jeremyevans)
|
|
48
|
+
|
|
49
|
+
* Deprecate Sequel::MySQL.convert_tinyint_to_bool accessor (jeremyevans)
|
|
50
|
+
|
|
51
|
+
* Deprecate Sequel::MySQL.default_{charset,collate,engine} accessors (jeremyevans)
|
|
52
|
+
|
|
53
|
+
* Add Database#default_{charset,collate,engine} accessors on MySQL (jeremyevans)
|
|
54
|
+
|
|
55
|
+
* Make mock adapter thread safe (jeremyevans)
|
|
56
|
+
|
|
57
|
+
* Deprecate Sequel::JDBC::Dataset#convert_types accessor (jeremyevans)
|
|
58
|
+
|
|
59
|
+
* Add Dataset#with_convert_types in jdbc adapter (jeremyevans)
|
|
60
|
+
|
|
61
|
+
* Deprecate Sequel::IBMDB::Dataset#convert_smallint_to_bool= method (jeremyevans)
|
|
62
|
+
|
|
63
|
+
* Deprecate Sequel::IBMDB.convert_smallint_to_bool accessor (jeremyevans)
|
|
64
|
+
|
|
65
|
+
* Add Database#convert_smallint_to_bool accessor in the ibmdb adapter (jeremyevans)
|
|
66
|
+
|
|
67
|
+
* Deprecate sequel_3_dataset_methods extension (jeremyevans)
|
|
68
|
+
|
|
69
|
+
* Deprecate query_literals extension (jeremyevans)
|
|
70
|
+
|
|
71
|
+
* Deprecate using subtype conversion procs added after registering composite type in the pg_row extension (jeremyevans)
|
|
72
|
+
|
|
73
|
+
* Don't try canceling copy in Database#copy_into if copier is not created yet (aakashAu) (#1384)
|
|
74
|
+
|
|
75
|
+
* Deprecate global conversion procs added by pg_* extensions, when extension isn't loaded into Database instance (jeremyevans)
|
|
76
|
+
|
|
77
|
+
* Deprecate Sequel::Postgres::PGRange.register in the pg_range extension (jeremyevans)
|
|
78
|
+
|
|
79
|
+
* Deprecate Sequel::Postgres::PGArray.register in the pg_array extension (jeremyevans)
|
|
80
|
+
|
|
81
|
+
* Deprecate Database#copy_conversion_procs (private method) on PostgreSQL (jeremyevans)
|
|
82
|
+
|
|
83
|
+
* Deprecate Database#reset_conversion_procs on PostgreSQL (jeremyevans)
|
|
84
|
+
|
|
85
|
+
* Deprecate meta_def extension (jeremyevans)
|
|
86
|
+
|
|
87
|
+
* Make class_table_inheritance plugin with :alias option not use subquery for datasets that don't join (jeremyevans)
|
|
88
|
+
|
|
89
|
+
* Deprecate hash_aliases extension (jeremyevans)
|
|
90
|
+
|
|
91
|
+
* Deprecate filter_having extension (jeremyevans)
|
|
92
|
+
|
|
93
|
+
* Deprecate empty_array_ignore_nulls extension (jeremyevans)
|
|
94
|
+
|
|
95
|
+
* Deprecate Array#sql_array in the core_extensions extension (jeremyevans)
|
|
96
|
+
|
|
97
|
+
* Make validation_helpers plugin :allow_blank option work correctly when the blank extension is not loaded (jeremyevans)
|
|
98
|
+
|
|
99
|
+
* Make validation_class_methods plugin no longer require the blank extension (jeremyevans)
|
|
100
|
+
|
|
101
|
+
* Clear cached associations when touching associations in the touch plugin (jeremyevans)
|
|
102
|
+
|
|
103
|
+
* Make pg_array_associations model plugin load pg_array extension into database (jeremyevans)
|
|
104
|
+
|
|
105
|
+
* Remove support for :strict option in nested_attributes plugin, use :unmatched_pk option instead (jeremyevans)
|
|
106
|
+
|
|
107
|
+
* Make to_json class/dataset method in json_serializer plugin accept :instance_block option to pass block to Model#to_json (jeremyevans)
|
|
108
|
+
|
|
109
|
+
* Make to_json methods in json_serializer plugin accept blocks that are used to transform values before serializing to JSON (jeremyevans)
|
|
110
|
+
|
|
111
|
+
* Make Sequel.object_to_json pass block to #to_json (jeremyevans)
|
|
112
|
+
|
|
113
|
+
* Deprecate identifier_columns plugin, not needed with Sequel.split_symbols = false (jeremyevans)
|
|
114
|
+
|
|
115
|
+
* Make reloading column_conflicts plugin not remove existing conflict markings (jeremyevans)
|
|
116
|
+
|
|
117
|
+
* Deprecate cti_base_model, cti_key, and cti_model_map class methods in class_table_inheritance plugin (jeremyevans)
|
|
118
|
+
|
|
119
|
+
* Make Model.skip_auto_validations(:not_null) in the auto_validations plugin skip not null checks for columns with default values (jeremyevans)
|
|
120
|
+
|
|
121
|
+
* Make Database#copy_into in jdbc/postgresql adapter respect :server option (jeremyevans)
|
|
122
|
+
|
|
123
|
+
* Make #to_hash and #to_hash_groups handle options in the static_cache plugin, and add rename #to_hash to #as_hash (jeremyevans)
|
|
124
|
+
|
|
125
|
+
* Rename Dataset#to_hash to #as_hash, and add #to_hash as an alias, to allow undefing #to_hash to fix ruby calling it implicitly (jeremyevans) (#1375)
|
|
126
|
+
|
|
127
|
+
* Handle PG* constants deprecated in pg 0.21.0 in the postgres adapter (jeremyevans) (#1377, #1378)
|
|
128
|
+
|
|
129
|
+
* Support :association_pks_use_associated_table association option in association_pks plugin (jeremyevans)
|
|
130
|
+
|
|
131
|
+
* Make pg_hstore extension reset hstore conversion proc when running Database#reset_conversion_procs (jeremyevans)
|
|
132
|
+
|
|
133
|
+
* Fix incorrect SQL used for inserting into a CTI subclass sharing the primary table when using the :alias option (jeremyevans)
|
|
134
|
+
|
|
1
135
|
=== 4.47.0 (2017-06-01)
|
|
2
136
|
|
|
3
137
|
* Deprecate pg_typecast_on_load plugin, only useful on deprecated do and swift adapters (jeremyevans)
|
data/Rakefile
CHANGED
|
@@ -129,7 +129,7 @@ spec_task.call("Run bin/sequel specs", :spec_bin, 'spec/bin_spec.rb', false)
|
|
|
129
129
|
spec_task.call("Run core extensions specs", :spec_core_ext, 'spec/core_extensions_spec.rb', true)
|
|
130
130
|
spec_task.call("Run integration tests", :spec_integration, 'spec/adapter_spec.rb none', true)
|
|
131
131
|
|
|
132
|
-
%w'postgres sqlite mysql
|
|
132
|
+
%w'postgres sqlite mysql oracle mssql db2 sqlanywhere'.each do |adapter|
|
|
133
133
|
spec_task.call("Run #{adapter} tests", :"spec_#{adapter}", "spec/adapter_spec.rb #{adapter}", true)
|
|
134
134
|
end
|
|
135
135
|
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
= Deprecated Features
|
|
2
|
+
|
|
3
|
+
* The identifier_columns plugin is now deprecated. There is no reason
|
|
4
|
+
to use it when Sequel.split_symbols = false, which will be the
|
|
5
|
+
default in Sequel 5.
|
|
6
|
+
|
|
7
|
+
* The filter_having, hash_aliases, and sequel_3_dataset_methods
|
|
8
|
+
extensions are now deprecated. They only existed for backwards
|
|
9
|
+
compatibility with Sequel 3.
|
|
10
|
+
|
|
11
|
+
* The query_literals extension is now deprecated. It changes behavior
|
|
12
|
+
in a way that makes SQL injections more likely.
|
|
13
|
+
|
|
14
|
+
* The meta_def extension is now deprecated. It is no longer necessary,
|
|
15
|
+
since on ruby 1.9+ you can use define_singleton_method.
|
|
16
|
+
|
|
17
|
+
* The empty_array_ignore_nulls extension has been deprecated. It
|
|
18
|
+
has been a no-op since Sequel 4.25.0.
|
|
19
|
+
|
|
20
|
+
* The cti_base_model, cti_key, and cti_model_map class methods in
|
|
21
|
+
the class_table_inheritance plugin are now deprecated. Use
|
|
22
|
+
cti_models.first instead of cti_base_model, sti_key
|
|
23
|
+
instead of cti_key, and sti_model_map instead of cti_model_map.
|
|
24
|
+
|
|
25
|
+
* The :strict option in the nested_attributes plugin is now deprecated.
|
|
26
|
+
Switch to using the :unmatched_pk option.
|
|
27
|
+
|
|
28
|
+
* Database#reset_conversion_procs on PostgreSQL is now deprecated.
|
|
29
|
+
There will be no need to call it in Sequel 5.
|
|
30
|
+
|
|
31
|
+
* Using global conversion procs added by the pg_* extensions, without
|
|
32
|
+
loading the pg_* extension into the Database instance, are now
|
|
33
|
+
deprecated. Additionally, using PGArray.register or PGRange.register
|
|
34
|
+
to register global types is now also deprecated. Use
|
|
35
|
+
Database#register_array_type or Database#register_range_type instead
|
|
36
|
+
to register the types on a per-Database basis.
|
|
37
|
+
|
|
38
|
+
* Treating :natural_inner join type as NATURAL LEFT JOIN on MySQL is
|
|
39
|
+
now deprecated. MySQL doesn't support NATURAL INNER JOIN, but if
|
|
40
|
+
you were going to convert it, NATURAL JOIN would make more sense.
|
|
41
|
+
|
|
42
|
+
* Unexpected values passed to Dataset#insert_conflict on SQLite are
|
|
43
|
+
now deprecated. Only values that result in one of the following
|
|
44
|
+
strings will be allowed in Sequel 5: ROLLBACK, ABORT, FAIL, IGNORE,
|
|
45
|
+
and REPLACE.
|
|
46
|
+
|
|
47
|
+
* The Dataset#and, #exclude_where, #interval, and #range methods
|
|
48
|
+
are now deprecated. Undeprecated copies are now available in the
|
|
49
|
+
new sequel_4_dataset_methods extension.
|
|
50
|
+
|
|
51
|
+
* Model.<< is now deprecated. Intuitivately, you would except this
|
|
52
|
+
to call Model.create and return the Model class, but it calls <<
|
|
53
|
+
on the model's dataset and returns the dataset.
|
|
54
|
+
|
|
55
|
+
* The Sequel::Postgres::PG_TYPES constant is now deprecated. All
|
|
56
|
+
conversion procs should now be added on a per-Database basis using
|
|
57
|
+
add_conversion_proc or add_named_conversion_proc. The following
|
|
58
|
+
private Database methods related to conversion procs are now
|
|
59
|
+
deprecated, though some are still called internally and therefore
|
|
60
|
+
do not have deprecation warnings:
|
|
61
|
+
|
|
62
|
+
* add_named_conversion_procs
|
|
63
|
+
* conversion_procs_updated
|
|
64
|
+
* convert_named_procs_to_procs
|
|
65
|
+
* copy_conversion_procs
|
|
66
|
+
* get_conversion_procs
|
|
67
|
+
|
|
68
|
+
Related to this, loading the sequel/adapters/utils/pg_types.rb file
|
|
69
|
+
is now deprecated.
|
|
70
|
+
|
|
71
|
+
* The following adapter or database specific global accessors for setting
|
|
72
|
+
defaults are now deprecated:
|
|
73
|
+
|
|
74
|
+
* Sequel::DB2.use_clob_as_blob
|
|
75
|
+
* Sequel::IBMDB.convert_smallint_to_bool
|
|
76
|
+
* Sequel::MySQL.convert_invalid_date_time
|
|
77
|
+
* Sequel::MySQL.convert_tinyint_to_bool
|
|
78
|
+
* Sequel::MySQL.default_charset
|
|
79
|
+
* Sequel::MySQL.default_collate
|
|
80
|
+
* Sequel::MySQL.default_engine
|
|
81
|
+
* Sequel::Postgres.use_iso_date_format
|
|
82
|
+
* Sequel::Postgres.client_min_messages
|
|
83
|
+
* Sequel::Postgres.force_standard_strings
|
|
84
|
+
* Sequel::SqlAnywhere.convert_smallint_to_bool
|
|
85
|
+
|
|
86
|
+
Use the Database instance accessors or Database options instead to
|
|
87
|
+
change behavior.
|
|
88
|
+
|
|
89
|
+
* The following adapter or database specific dataset mutation methods are
|
|
90
|
+
now deprecated:
|
|
91
|
+
|
|
92
|
+
* convert_smallint_to_bool= (ibmdb adapter, SQLAnywhere)
|
|
93
|
+
* convert_types= (jdbc adapter)
|
|
94
|
+
* mssql_unicode_strings= (Microsoft SQL Server)
|
|
95
|
+
|
|
96
|
+
Use the with_* methods which return a modified copy of the dataset
|
|
97
|
+
instead of these mutation methods.
|
|
98
|
+
|
|
99
|
+
* The Dataset#non_sql_options private method is now deprecated.
|
|
100
|
+
External adapters that overrode this method should switch to
|
|
101
|
+
overriding Dataset#non_sql_option?.
|
|
102
|
+
|
|
103
|
+
* The Database#timestamp_convertor private method in the jdbc adapter
|
|
104
|
+
is now deprecated. Users should switch to method(:timestamp_convert).
|
|
105
|
+
|
|
106
|
+
* Modification of the Sequel::JDBC::TypeConvertor class is now
|
|
107
|
+
deprecated. External jdbc subadapters that were using this to add
|
|
108
|
+
custom conversion procs should be modified.
|
|
109
|
+
|
|
110
|
+
* Having the pg_row extension respect conversion procs for subtypes
|
|
111
|
+
added after the registeration of the composite type is now deprecated.
|
|
112
|
+
Now, all subtypes should have the appropriate conversion proc added
|
|
113
|
+
before the composite type is registered.
|
|
114
|
+
|
|
115
|
+
* Array#sql_array in the core_extensions extension is now deprecated.
|
|
116
|
+
Switch to using Array#sql_value_list.
|
|
117
|
+
|
|
118
|
+
* The SEQUEL_POSTGRES_USES_PG constant added by the postgres adapter
|
|
119
|
+
is now deprecated. Sequel::Postgres::USES_PG should be used instead.
|
|
120
|
+
|
|
121
|
+
* Many more internal Sequel constants have been deprecated.
|
|
122
|
+
|
|
123
|
+
= New Features
|
|
124
|
+
|
|
125
|
+
* The Model#to_json and Dataset#to_json methods in the json_serializer
|
|
126
|
+
plugin now support a block. This block is called with the
|
|
127
|
+
hash/array that would have be serialized to JSON, and the block
|
|
128
|
+
should return the object to serialize. This makes it easy to
|
|
129
|
+
customize the JSON output by adding new entries, or wrapping the
|
|
130
|
+
object in other object.
|
|
131
|
+
|
|
132
|
+
The Dataset#to_json method supports an :instance_block option, which
|
|
133
|
+
should be a proc that will be passed to Model#to_json.
|
|
134
|
+
|
|
135
|
+
In order to implement this, Sequel.object_to_json now passes any
|
|
136
|
+
block given to the to_json call on the object. If you are
|
|
137
|
+
overriding Sequel.object_to_json, you are responsible for making
|
|
138
|
+
sure the block is passed appropriately.
|
|
139
|
+
|
|
140
|
+
* The association_pks plugin now supports a
|
|
141
|
+
:association_pks_use_associated_table association option for
|
|
142
|
+
many_to_many associations. If this option is used, instead of just
|
|
143
|
+
looking at the join table, the association_pks getter will get the
|
|
144
|
+
primary keys from the associated table. This can be useful if the
|
|
145
|
+
association's right_primary_key does not match the associated
|
|
146
|
+
model's primary key, and you are interested in the primary keys of
|
|
147
|
+
the associated objects. If this option is used, no association_pks
|
|
148
|
+
setter method is created.
|
|
149
|
+
|
|
150
|
+
* Dataset#as_hash has been added as a replacement to #to_hash.
|
|
151
|
+
If you want, you can now undef_method :to_hash and use
|
|
152
|
+
as_hash and things will work. Doing so can work around
|
|
153
|
+
problems when using keyword argument splats in ruby 2.0+.
|
|
154
|
+
For example:
|
|
155
|
+
|
|
156
|
+
def foo(*a, **b)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
foo(City.order(:id))
|
|
160
|
+
|
|
161
|
+
results in foo being called with a being [] and b being
|
|
162
|
+
City.order(:id).to_hash, which is unexpected and undesired
|
|
163
|
+
behavior. If you want to use keyword argument splats or other
|
|
164
|
+
places where ruby will call to_hash implicitly if it is defined,
|
|
165
|
+
using undef_method :to_hash is recommended.
|
|
166
|
+
|
|
167
|
+
* A Database#add_conversion_proc method has been added on
|
|
168
|
+
PostgreSQL. This method takes a type OID and either a block
|
|
169
|
+
or a callable argument to use as the conversion proc for the
|
|
170
|
+
type OID.
|
|
171
|
+
|
|
172
|
+
* The following adapter or database specific Database accessors
|
|
173
|
+
have been added for changing settings on a per-Database basis:
|
|
174
|
+
|
|
175
|
+
* convert_smallint_to_bool (ibmdb adapter)
|
|
176
|
+
* default_charset (MySQL)
|
|
177
|
+
* default_collate (MySQL)
|
|
178
|
+
* default_engine (MySQL)
|
|
179
|
+
* use_clob_as_blob (DB2)
|
|
180
|
+
|
|
181
|
+
* A Dataset#with_convert_types method has been added to the jdbc
|
|
182
|
+
adapter, for returning a modified dataset with the convert_types
|
|
183
|
+
setting changed.
|
|
184
|
+
|
|
185
|
+
= Other Improvements
|
|
186
|
+
|
|
187
|
+
* Using the postgres adapter with pg 0.21.0 no longer results in
|
|
188
|
+
deprecation warnings.
|
|
189
|
+
|
|
190
|
+
* When using the class_table_inheritance plugin and using a direct
|
|
191
|
+
subclass of the parent class that does not use a separate table,
|
|
192
|
+
as well as using the :alias option, the insert SQL used is now
|
|
193
|
+
correct. Previously, it attempted to insert into a subquery,
|
|
194
|
+
which is not valid SQL.
|
|
195
|
+
|
|
196
|
+
Additionally, the dataset for such a model no longer uses a
|
|
197
|
+
subquery, since there is no reason to do so as there is no join.
|
|
198
|
+
|
|
199
|
+
* Model.skip_auto_validations(:not_null) in the auto_validations
|
|
200
|
+
plugin now skips not null checks for columns with default
|
|
201
|
+
values, in addition to skipping not null checks for columns
|
|
202
|
+
without default values.
|
|
203
|
+
|
|
204
|
+
* The static_cache plugin now supports the options hash argument
|
|
205
|
+
to to_hash and to_hash_groups. Currently, it only supports
|
|
206
|
+
the :hash option, since the :all option doesn't make sense.
|
|
207
|
+
|
|
208
|
+
* When touching associations in the touch plugin, clear the
|
|
209
|
+
cached association, because otherwise the cached values will
|
|
210
|
+
be stale.
|
|
211
|
+
|
|
212
|
+
* The validation_class_methods plugin no longer requires the
|
|
213
|
+
blank extension.
|
|
214
|
+
|
|
215
|
+
* The validation_helpers plugin methods that support the
|
|
216
|
+
:allow_blank option now work correctly if the blank extension
|
|
217
|
+
is not loaded.
|
|
218
|
+
|
|
219
|
+
* Loading the column_conflicts plugin into a model a second time
|
|
220
|
+
no longer removes existing column conflict settings.
|
|
221
|
+
|
|
222
|
+
* On SQLite 3.8.8+, indexes automatically created from unique
|
|
223
|
+
constraints are now included in Database#indexes output.
|
|
224
|
+
|
|
225
|
+
* On SQLite 3.8.8+, partial indexes are now excluded from
|
|
226
|
+
Database#indexes output.
|
|
227
|
+
|
|
228
|
+
* Database#indexes on PostgreSQL 9.5+ now uses a simpler query
|
|
229
|
+
with the array_position function.
|
|
230
|
+
|
|
231
|
+
* Database#foreign_key_list on PostgreSQL now uses a single
|
|
232
|
+
query instead of two queries, and also uses the array_position
|
|
233
|
+
function on PostgreSQL 9.5+ to simplify the queries.
|
|
234
|
+
|
|
235
|
+
* On PostgreSQL and Derby, when calling Database#create_table
|
|
236
|
+
with the :ignore_index_errors option inside a transaction,
|
|
237
|
+
a savepoint is used around each index creation so that an
|
|
238
|
+
index error does not cause the entire transaction to fail.
|
|
239
|
+
A savepoint is also used on Microsoft SQL Server, but it
|
|
240
|
+
appears that Microsoft SQL Server rolls back the entire
|
|
241
|
+
transaction if CREATE INDEX returns an error, instead of
|
|
242
|
+
just rolling back to the savepoint.
|
|
243
|
+
|
|
244
|
+
* Encoding is now preserved when parsing PostgreSQL arrays in the
|
|
245
|
+
pg_array extension.
|
|
246
|
+
|
|
247
|
+
* Database#copy_table in the postgres adapter now does not
|
|
248
|
+
hide the underlying exception if an exception is raised
|
|
249
|
+
during processing.
|
|
250
|
+
|
|
251
|
+
* Database#copy_into in the jdbc/postgresql adapter now does not
|
|
252
|
+
hide the underlying exception if an exception is raised
|
|
253
|
+
during processing.
|
|
254
|
+
|
|
255
|
+
* Database#copy_into in the jdbc/postgresql adapter now
|
|
256
|
+
respects the :server option for using a specific shard.
|
|
257
|
+
|
|
258
|
+
* Calling #reset_conversion_procs on Database instance that
|
|
259
|
+
uses the pg_hstore extension now results in the hstore
|
|
260
|
+
type still being parsed. Previously, the hstore conversion
|
|
261
|
+
proc would be dropped.
|
|
262
|
+
|
|
263
|
+
* The postgres adapter no longer monkey-patches postgres-pr if it
|
|
264
|
+
uses that as the driver.
|
|
265
|
+
|
|
266
|
+
* Multiple thread-safety issues in the mock adapter have been
|
|
267
|
+
fixed.
|
|
268
|
+
|
|
269
|
+
* Thread safety issues when simultaneously loading multiple
|
|
270
|
+
adapters that access PostgreSQL have been fixed.
|
|
271
|
+
|
|
272
|
+
* Hash allocations have been reduced in the csv_serializer,
|
|
273
|
+
json_serializer, and xml_serializer plugins.
|
|
274
|
+
|
|
275
|
+
* The deprecated Sequel::Model::ANONYMOUS_MODEL_CLASSES
|
|
276
|
+
constant is now correctly populated with classes created
|
|
277
|
+
by Sequel::Model(). This was broken in starting in
|
|
278
|
+
Sequel 4.45.0.
|
|
279
|
+
|
|
280
|
+
= Backwards Compatibility
|
|
281
|
+
|
|
282
|
+
* The pg_array_associations plugin now loads the pg_array
|
|
283
|
+
extension into the Database instance if it is not already
|
|
284
|
+
loaded. This can break cases where the pg_array_associations
|
|
285
|
+
plugin is used on a non-PostgreSQL database.
|
|
286
|
+
|
|
287
|
+
* Support for using the old postgres driver has been removed
|
|
288
|
+
from the postgres adapter. The postgres adapter now only
|
|
289
|
+
supports pg and postgres-pr.
|
|
290
|
+
|
|
291
|
+
* When the postgres-pr driver is being used by the postgres
|
|
292
|
+
adapter, connecting to a database is only allowed if
|
|
293
|
+
standard strings are being forced (the default).
|