sequel 5.29.0 → 5.30.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 +8 -1922
- data/doc/release_notes/5.30.0.txt +20 -0
- data/lib/sequel/adapters/shared/sqlite.rb +7 -1
- data/lib/sequel/database/transactions.rb +5 -9
- data/lib/sequel/version.rb +1 -1
- metadata +4 -368
- data/Rakefile +0 -151
- data/doc/release_notes/4.0.0.txt +0 -262
- data/doc/release_notes/4.1.0.txt +0 -85
- data/doc/release_notes/4.10.0.txt +0 -226
- data/doc/release_notes/4.11.0.txt +0 -147
- data/doc/release_notes/4.12.0.txt +0 -105
- data/doc/release_notes/4.13.0.txt +0 -169
- data/doc/release_notes/4.14.0.txt +0 -68
- data/doc/release_notes/4.15.0.txt +0 -56
- data/doc/release_notes/4.16.0.txt +0 -36
- data/doc/release_notes/4.17.0.txt +0 -38
- data/doc/release_notes/4.18.0.txt +0 -36
- data/doc/release_notes/4.19.0.txt +0 -45
- data/doc/release_notes/4.2.0.txt +0 -129
- data/doc/release_notes/4.20.0.txt +0 -79
- data/doc/release_notes/4.21.0.txt +0 -94
- data/doc/release_notes/4.22.0.txt +0 -72
- data/doc/release_notes/4.23.0.txt +0 -65
- data/doc/release_notes/4.24.0.txt +0 -99
- data/doc/release_notes/4.25.0.txt +0 -181
- data/doc/release_notes/4.26.0.txt +0 -44
- data/doc/release_notes/4.27.0.txt +0 -78
- data/doc/release_notes/4.28.0.txt +0 -57
- data/doc/release_notes/4.29.0.txt +0 -41
- data/doc/release_notes/4.3.0.txt +0 -40
- data/doc/release_notes/4.30.0.txt +0 -37
- data/doc/release_notes/4.31.0.txt +0 -57
- data/doc/release_notes/4.32.0.txt +0 -132
- data/doc/release_notes/4.33.0.txt +0 -88
- data/doc/release_notes/4.34.0.txt +0 -86
- data/doc/release_notes/4.35.0.txt +0 -130
- data/doc/release_notes/4.36.0.txt +0 -116
- data/doc/release_notes/4.37.0.txt +0 -50
- data/doc/release_notes/4.38.0.txt +0 -67
- data/doc/release_notes/4.39.0.txt +0 -127
- data/doc/release_notes/4.4.0.txt +0 -92
- data/doc/release_notes/4.40.0.txt +0 -179
- data/doc/release_notes/4.41.0.txt +0 -77
- data/doc/release_notes/4.42.0.txt +0 -221
- data/doc/release_notes/4.43.0.txt +0 -87
- data/doc/release_notes/4.44.0.txt +0 -125
- data/doc/release_notes/4.45.0.txt +0 -370
- data/doc/release_notes/4.46.0.txt +0 -404
- data/doc/release_notes/4.47.0.txt +0 -56
- data/doc/release_notes/4.48.0.txt +0 -293
- data/doc/release_notes/4.49.0.txt +0 -222
- data/doc/release_notes/4.5.0.txt +0 -34
- data/doc/release_notes/4.6.0.txt +0 -30
- data/doc/release_notes/4.7.0.txt +0 -103
- data/doc/release_notes/4.8.0.txt +0 -175
- data/doc/release_notes/4.9.0.txt +0 -190
- data/spec/adapter_spec.rb +0 -4
- data/spec/adapters/db2_spec.rb +0 -170
- data/spec/adapters/mssql_spec.rb +0 -828
- data/spec/adapters/mysql_spec.rb +0 -1060
- data/spec/adapters/oracle_spec.rb +0 -371
- data/spec/adapters/postgres_spec.rb +0 -4476
- data/spec/adapters/spec_helper.rb +0 -44
- data/spec/adapters/sqlanywhere_spec.rb +0 -97
- data/spec/adapters/sqlite_spec.rb +0 -652
- data/spec/bin_spec.rb +0 -278
- data/spec/core/connection_pool_spec.rb +0 -1250
- data/spec/core/database_spec.rb +0 -2915
- data/spec/core/dataset_spec.rb +0 -5544
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1498
- data/spec/core/mock_adapter_spec.rb +0 -722
- data/spec/core/object_graph_spec.rb +0 -336
- data/spec/core/placeholder_literalizer_spec.rb +0 -166
- data/spec/core/schema_generator_spec.rb +0 -214
- data/spec/core/schema_spec.rb +0 -1844
- data/spec/core/spec_helper.rb +0 -24
- data/spec/core/version_spec.rb +0 -14
- data/spec/core_extensions_spec.rb +0 -763
- data/spec/core_model_spec.rb +0 -2
- data/spec/core_spec.rb +0 -1
- data/spec/deprecation_helper.rb +0 -30
- data/spec/extensions/accessed_columns_spec.rb +0 -51
- data/spec/extensions/active_model_spec.rb +0 -99
- data/spec/extensions/after_initialize_spec.rb +0 -28
- data/spec/extensions/any_not_empty_spec.rb +0 -23
- data/spec/extensions/arbitrary_servers_spec.rb +0 -109
- data/spec/extensions/association_dependencies_spec.rb +0 -125
- data/spec/extensions/association_multi_add_remove_spec.rb +0 -1041
- data/spec/extensions/association_pks_spec.rb +0 -423
- data/spec/extensions/association_proxies_spec.rb +0 -100
- data/spec/extensions/auto_literal_strings_spec.rb +0 -205
- data/spec/extensions/auto_validations_spec.rb +0 -229
- data/spec/extensions/blacklist_security_spec.rb +0 -95
- data/spec/extensions/blank_spec.rb +0 -69
- data/spec/extensions/boolean_readers_spec.rb +0 -93
- data/spec/extensions/boolean_subsets_spec.rb +0 -47
- data/spec/extensions/caching_spec.rb +0 -273
- data/spec/extensions/caller_logging_spec.rb +0 -52
- data/spec/extensions/class_table_inheritance_spec.rb +0 -750
- data/spec/extensions/column_conflicts_spec.rb +0 -75
- data/spec/extensions/column_select_spec.rb +0 -129
- data/spec/extensions/columns_introspection_spec.rb +0 -90
- data/spec/extensions/columns_updated_spec.rb +0 -35
- data/spec/extensions/composition_spec.rb +0 -248
- data/spec/extensions/connection_expiration_spec.rb +0 -151
- data/spec/extensions/connection_validator_spec.rb +0 -144
- data/spec/extensions/constant_sql_override_spec.rb +0 -24
- data/spec/extensions/constraint_validations_plugin_spec.rb +0 -300
- data/spec/extensions/constraint_validations_spec.rb +0 -439
- data/spec/extensions/core_refinements_spec.rb +0 -528
- data/spec/extensions/csv_serializer_spec.rb +0 -183
- data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
- data/spec/extensions/dataset_associations_spec.rb +0 -365
- data/spec/extensions/dataset_source_alias_spec.rb +0 -51
- data/spec/extensions/date_arithmetic_spec.rb +0 -181
- data/spec/extensions/datetime_parse_to_time_spec.rb +0 -169
- data/spec/extensions/def_dataset_method_spec.rb +0 -100
- data/spec/extensions/defaults_setter_spec.rb +0 -150
- data/spec/extensions/delay_add_association_spec.rb +0 -73
- data/spec/extensions/dirty_spec.rb +0 -222
- data/spec/extensions/duplicate_columns_handler_spec.rb +0 -104
- data/spec/extensions/eager_each_spec.rb +0 -62
- data/spec/extensions/eager_graph_eager_spec.rb +0 -100
- data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
- data/spec/extensions/empty_failure_backtraces_spec.rb +0 -60
- data/spec/extensions/error_splitter_spec.rb +0 -18
- data/spec/extensions/error_sql_spec.rb +0 -20
- data/spec/extensions/escaped_like_spec.rb +0 -40
- data/spec/extensions/eval_inspect_spec.rb +0 -81
- data/spec/extensions/exclude_or_null_spec.rb +0 -15
- data/spec/extensions/finder_spec.rb +0 -260
- data/spec/extensions/force_encoding_spec.rb +0 -126
- data/spec/extensions/freeze_datasets_spec.rb +0 -31
- data/spec/extensions/graph_each_spec.rb +0 -113
- data/spec/extensions/hook_class_methods_spec.rb +0 -402
- data/spec/extensions/identifier_mangling_spec.rb +0 -201
- data/spec/extensions/implicit_subquery_spec.rb +0 -58
- data/spec/extensions/index_caching_spec.rb +0 -66
- data/spec/extensions/inflector_spec.rb +0 -183
- data/spec/extensions/input_transformer_spec.rb +0 -69
- data/spec/extensions/insert_conflict_spec.rb +0 -103
- data/spec/extensions/insert_returning_select_spec.rb +0 -72
- data/spec/extensions/instance_filters_spec.rb +0 -79
- data/spec/extensions/instance_hooks_spec.rb +0 -246
- data/spec/extensions/integer64_spec.rb +0 -22
- data/spec/extensions/inverted_subsets_spec.rb +0 -33
- data/spec/extensions/json_serializer_spec.rb +0 -346
- data/spec/extensions/lazy_attributes_spec.rb +0 -183
- data/spec/extensions/list_spec.rb +0 -291
- data/spec/extensions/looser_typecasting_spec.rb +0 -43
- data/spec/extensions/many_through_many_spec.rb +0 -2177
- data/spec/extensions/migration_spec.rb +0 -864
- data/spec/extensions/modification_detection_spec.rb +0 -93
- data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -92
- data/spec/extensions/named_timezones_spec.rb +0 -218
- data/spec/extensions/nested_attributes_spec.rb +0 -815
- data/spec/extensions/null_dataset_spec.rb +0 -85
- data/spec/extensions/optimistic_locking_spec.rb +0 -127
- data/spec/extensions/pagination_spec.rb +0 -116
- data/spec/extensions/pg_array_associations_spec.rb +0 -802
- data/spec/extensions/pg_array_ops_spec.rb +0 -144
- data/spec/extensions/pg_array_spec.rb +0 -398
- data/spec/extensions/pg_auto_constraint_validations_spec.rb +0 -209
- data/spec/extensions/pg_enum_spec.rb +0 -118
- data/spec/extensions/pg_extended_date_support_spec.rb +0 -126
- data/spec/extensions/pg_hstore_ops_spec.rb +0 -238
- data/spec/extensions/pg_hstore_spec.rb +0 -219
- data/spec/extensions/pg_inet_ops_spec.rb +0 -102
- data/spec/extensions/pg_inet_spec.rb +0 -72
- data/spec/extensions/pg_interval_spec.rb +0 -103
- data/spec/extensions/pg_json_ops_spec.rb +0 -356
- data/spec/extensions/pg_json_spec.rb +0 -451
- data/spec/extensions/pg_loose_count_spec.rb +0 -23
- data/spec/extensions/pg_range_ops_spec.rb +0 -60
- data/spec/extensions/pg_range_spec.rb +0 -600
- data/spec/extensions/pg_row_ops_spec.rb +0 -61
- data/spec/extensions/pg_row_plugin_spec.rb +0 -60
- data/spec/extensions/pg_row_spec.rb +0 -363
- data/spec/extensions/pg_static_cache_updater_spec.rb +0 -93
- data/spec/extensions/pg_timestamptz_spec.rb +0 -17
- data/spec/extensions/prepared_statements_safe_spec.rb +0 -66
- data/spec/extensions/prepared_statements_spec.rb +0 -177
- data/spec/extensions/pretty_table_spec.rb +0 -123
- data/spec/extensions/query_spec.rb +0 -94
- data/spec/extensions/rcte_tree_spec.rb +0 -387
- data/spec/extensions/round_timestamps_spec.rb +0 -39
- data/spec/extensions/s_spec.rb +0 -60
- data/spec/extensions/schema_caching_spec.rb +0 -64
- data/spec/extensions/schema_dumper_spec.rb +0 -870
- data/spec/extensions/select_remove_spec.rb +0 -38
- data/spec/extensions/sequel_4_dataset_methods_spec.rb +0 -121
- data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
- data/spec/extensions/serialization_spec.rb +0 -365
- data/spec/extensions/server_block_spec.rb +0 -135
- data/spec/extensions/server_logging_spec.rb +0 -45
- data/spec/extensions/sharding_spec.rb +0 -197
- data/spec/extensions/shared_caching_spec.rb +0 -151
- data/spec/extensions/single_table_inheritance_spec.rb +0 -347
- data/spec/extensions/singular_table_names_spec.rb +0 -22
- data/spec/extensions/skip_create_refresh_spec.rb +0 -18
- data/spec/extensions/spec_helper.rb +0 -70
- data/spec/extensions/split_array_nil_spec.rb +0 -24
- data/spec/extensions/split_values_spec.rb +0 -57
- data/spec/extensions/sql_comments_spec.rb +0 -33
- data/spec/extensions/sql_expr_spec.rb +0 -59
- data/spec/extensions/static_cache_cache_spec.rb +0 -35
- data/spec/extensions/static_cache_spec.rb +0 -471
- data/spec/extensions/string_agg_spec.rb +0 -90
- data/spec/extensions/string_date_time_spec.rb +0 -95
- data/spec/extensions/string_stripper_spec.rb +0 -68
- data/spec/extensions/subclasses_spec.rb +0 -79
- data/spec/extensions/subset_conditions_spec.rb +0 -38
- data/spec/extensions/symbol_aref_refinement_spec.rb +0 -28
- data/spec/extensions/symbol_as_refinement_spec.rb +0 -21
- data/spec/extensions/synchronize_sql_spec.rb +0 -124
- data/spec/extensions/table_select_spec.rb +0 -83
- data/spec/extensions/tactical_eager_loading_spec.rb +0 -402
- data/spec/extensions/thread_local_timezones_spec.rb +0 -67
- data/spec/extensions/throw_failures_spec.rb +0 -74
- data/spec/extensions/timestamps_spec.rb +0 -209
- data/spec/extensions/to_dot_spec.rb +0 -153
- data/spec/extensions/touch_spec.rb +0 -226
- data/spec/extensions/tree_spec.rb +0 -334
- data/spec/extensions/typecast_on_load_spec.rb +0 -86
- data/spec/extensions/unlimited_update_spec.rb +0 -21
- data/spec/extensions/update_or_create_spec.rb +0 -83
- data/spec/extensions/update_primary_key_spec.rb +0 -105
- data/spec/extensions/update_refresh_spec.rb +0 -59
- data/spec/extensions/uuid_spec.rb +0 -101
- data/spec/extensions/validate_associated_spec.rb +0 -52
- data/spec/extensions/validation_class_methods_spec.rb +0 -1040
- data/spec/extensions/validation_contexts_spec.rb +0 -31
- data/spec/extensions/validation_helpers_spec.rb +0 -525
- data/spec/extensions/whitelist_security_spec.rb +0 -157
- data/spec/extensions/xml_serializer_spec.rb +0 -213
- data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
- data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
- data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
- data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
- data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/double_migration/001_create_sessions.rb +0 -9
- data/spec/files/double_migration/002_create_nodes.rb +0 -19
- data/spec/files/double_migration/003_3_create_users.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
- data/spec/files/empty_migration/001_create_sessions.rb +0 -9
- data/spec/files/empty_migration/002_create_nodes.rb +0 -0
- data/spec/files/empty_migration/003_3_create_users.rb +0 -4
- data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
- data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
- data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
- data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
- data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/reversible_migrations/001_reversible.rb +0 -5
- data/spec/files/reversible_migrations/002_reversible.rb +0 -5
- data/spec/files/reversible_migrations/003_reversible.rb +0 -5
- data/spec/files/reversible_migrations/004_reversible.rb +0 -5
- data/spec/files/reversible_migrations/005_reversible.rb +0 -10
- data/spec/files/reversible_migrations/006_reversible.rb +0 -10
- data/spec/files/reversible_migrations/007_reversible.rb +0 -10
- data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
- data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
- data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
- data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
- data/spec/guards_helper.rb +0 -59
- data/spec/integration/associations_test.rb +0 -2597
- data/spec/integration/database_test.rb +0 -113
- data/spec/integration/dataset_test.rb +0 -2037
- data/spec/integration/eager_loader_test.rb +0 -687
- data/spec/integration/migrator_test.rb +0 -262
- data/spec/integration/model_test.rb +0 -203
- data/spec/integration/plugin_test.rb +0 -2423
- data/spec/integration/prepared_statement_test.rb +0 -405
- data/spec/integration/schema_test.rb +0 -903
- data/spec/integration/spec_helper.rb +0 -71
- data/spec/integration/timezone_test.rb +0 -86
- data/spec/integration/transaction_test.rb +0 -603
- data/spec/integration/type_test.rb +0 -127
- data/spec/model/association_reflection_spec.rb +0 -803
- data/spec/model/associations_spec.rb +0 -4738
- data/spec/model/base_spec.rb +0 -875
- data/spec/model/class_dataset_methods_spec.rb +0 -146
- data/spec/model/dataset_methods_spec.rb +0 -198
- data/spec/model/eager_loading_spec.rb +0 -2377
- data/spec/model/hooks_spec.rb +0 -370
- data/spec/model/inflector_spec.rb +0 -26
- data/spec/model/model_spec.rb +0 -956
- data/spec/model/plugins_spec.rb +0 -429
- data/spec/model/record_spec.rb +0 -2118
- data/spec/model/spec_helper.rb +0 -46
- data/spec/model/validations_spec.rb +0 -220
- data/spec/model_no_assoc_spec.rb +0 -1
- data/spec/model_spec.rb +0 -1
- data/spec/plugin_spec.rb +0 -1
- data/spec/sequel_coverage.rb +0 -15
- data/spec/sequel_warning.rb +0 -5
- data/spec/spec_config.rb +0 -12
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Sequel::Model::Model() has been added, which allows for
|
|
4
|
-
Sequel::Model() like behavior where the base class used is a
|
|
5
|
-
subclass of Sequel::Model. To make it easier to use,
|
|
6
|
-
Sequel::Model.def_Model has also been added, which takes a module
|
|
7
|
-
and adds a Model() method to the module that calls Model() on the
|
|
8
|
-
receiver.
|
|
9
|
-
|
|
10
|
-
A :class_namespace association option has been added to make it
|
|
11
|
-
possible to set a default namespace for the :class option if given
|
|
12
|
-
as a symbol or string.
|
|
13
|
-
|
|
14
|
-
Sequel::Model.Model.cache_anonymous_models has been added and
|
|
15
|
-
controls whether to cache anonymous model subclasses created by
|
|
16
|
-
Sequel::Model::Model() on a per-class basis.
|
|
17
|
-
|
|
18
|
-
These changes are designed to make it easier to use namespaced
|
|
19
|
-
models, for example:
|
|
20
|
-
|
|
21
|
-
module Foo
|
|
22
|
-
Model = Class.new(Sequel::Model)
|
|
23
|
-
Model.def_Model(self)
|
|
24
|
-
DB = Model.db = Sequel.connect(ENV['FOO_DATABASE_URL'])
|
|
25
|
-
Model.plugin :prepared_statements
|
|
26
|
-
Model.default_association_options[:class_namespace] = 'Foo'
|
|
27
|
-
|
|
28
|
-
class Bar < Model
|
|
29
|
-
# Uses Foo::DB[:bars] as dataset
|
|
30
|
-
|
|
31
|
-
# Implicitly uses Foo::Baz as associated class
|
|
32
|
-
one_to_many :bazes
|
|
33
|
-
|
|
34
|
-
# Uses Foo::Baz due to :class_namespace option
|
|
35
|
-
one_to_many :oldest_bazes, :class=>:Baz, :order=>:id
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class Baz < Model(:my_baz)
|
|
39
|
-
# Uses Foo::DB[:my_baz] as dataset
|
|
40
|
-
|
|
41
|
-
# Implicitly uses Foo::Bar as associated class
|
|
42
|
-
one_to_many :bars
|
|
43
|
-
|
|
44
|
-
# Uses Foo::Bar due to :class_namespace option
|
|
45
|
-
one_to_many :oldest_bars, :class=>:Bar, :order=>:id
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
* A string_agg extension has been added for aggregate string
|
|
50
|
-
concatentation support on PostgreSQL 9+, SQLAnywhere 12+,
|
|
51
|
-
Oracle11g+, DB 9.7+, MySQL, HSQLDB, H2, and CUBRID:
|
|
52
|
-
|
|
53
|
-
DB.extension :string_agg
|
|
54
|
-
ds = DB[:table]
|
|
55
|
-
ds.get(Sequel.string_agg(:c)) # ',' default separator
|
|
56
|
-
ds.get(Sequel.string_agg(:c, ' - ')) # custom separator
|
|
57
|
-
ds.get(Sequel.string_agg(:c).order(:bar)) # force order
|
|
58
|
-
ds.get(Sequel.string_agg(:c).distinct) # remove duplicates
|
|
59
|
-
|
|
60
|
-
* A connection_expiration extension has been added, for automatically
|
|
61
|
-
removing connections from the connection pool after they have been
|
|
62
|
-
open for a given amount of time (4 hours by default).
|
|
63
|
-
|
|
64
|
-
* Support for <, <=, >, and >= operator validations when using integer
|
|
65
|
-
and string arguments has been added to the constraint_validations
|
|
66
|
-
extension and plugin.
|
|
67
|
-
|
|
68
|
-
* Sequel::SQL::Function#order has been added to support ordered
|
|
69
|
-
aggregate functions:
|
|
70
|
-
|
|
71
|
-
Sequel.function(:foo, :bar).order(:baz)
|
|
72
|
-
# foo(bar ORDER BY baz)
|
|
73
|
-
|
|
74
|
-
= Other Improvements
|
|
75
|
-
|
|
76
|
-
* The validates_operator validation in validation_helpers now
|
|
77
|
-
considers nil values as invalid unless :allow_nil or a similar
|
|
78
|
-
option is used. Previously, using validates_operator with a nil
|
|
79
|
-
value would probably raise a NoMethodError. This makes
|
|
80
|
-
validates_operator more similar to other validations.
|
|
81
|
-
|
|
82
|
-
* The threaded connection pools no longer hold the pool mutex when
|
|
83
|
-
disconnecting connections, which is useful if the driver blocks
|
|
84
|
-
when disconnecting connections.
|
|
85
|
-
|
|
86
|
-
* The connection_validator extension no longer holds a reference
|
|
87
|
-
to connections that have been disconnected.
|
|
88
|
-
|
|
89
|
-
* The connection_validator extension no longer overwrites the
|
|
90
|
-
connection_validation_timeout if loaded a second time.
|
|
91
|
-
|
|
92
|
-
* Sequel now closes cursors as soon as it is done using them in the
|
|
93
|
-
oracle adapter, instead of waiting for GC to clean them up.
|
|
94
|
-
|
|
95
|
-
* Sequel now handles disconnect errors that occur when literalizing
|
|
96
|
-
strings in the mysql2 and postgres adapters.
|
|
97
|
-
|
|
98
|
-
= Backwards Compatibility
|
|
99
|
-
|
|
100
|
-
* Using the Bignum class as a generic type is now deprecated. As
|
|
101
|
-
announced in the 4.35.0 release notes, ruby 2.4 is unifying the
|
|
102
|
-
Fixnum and Bignum classes into Integer, which results in the
|
|
103
|
-
behavior of the Bignum class changing. 4.35.0 added support for
|
|
104
|
-
using the :Bignum symbol as a generic 64-bit integer type, and
|
|
105
|
-
Sequel users now need to switch to that to avoid the deprecation
|
|
106
|
-
warning.
|
|
107
|
-
|
|
108
|
-
Sequel 4.41.0 (to be released in December), will drop support
|
|
109
|
-
for using the Bignum class as a generic type. This is being done
|
|
110
|
-
before the release of ruby 2.4 to hopefully make it unlikely that
|
|
111
|
-
users will be subject to a behavior changes when upgrading ruby
|
|
112
|
-
versions.
|
|
113
|
-
|
|
114
|
-
Related to this change, external adapters need to switch from
|
|
115
|
-
overriding Database#type_literal_generic_bignum to
|
|
116
|
-
Database#type_literal_generic_bignum_symbol.
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Database#values has been added on SQLite#3.8.3+, operating similarly
|
|
4
|
-
to the support on PostgreSQL:
|
|
5
|
-
|
|
6
|
-
DB.values([[1, 2], [3, 4]]).select_map([:column1, :column2])
|
|
7
|
-
# => [[1, 2], [3, 4]]
|
|
8
|
-
|
|
9
|
-
* Regular expressions in dataset filters are now supported on Oracle
|
|
10
|
-
10g+:
|
|
11
|
-
|
|
12
|
-
DB[:t].where(:c=>/re/)
|
|
13
|
-
# SELECT * FROM "T" WHERE REGEXP_LIKE("C",'re')
|
|
14
|
-
|
|
15
|
-
= Other Improvements
|
|
16
|
-
|
|
17
|
-
* Sequel now supports the use of native prepared statements and bound
|
|
18
|
-
variables in the mysql2 adapter, when mysql2 0.4+ is used.
|
|
19
|
-
Previously, the mysql2 adapter supported database prepared
|
|
20
|
-
statements, but variables were always literalized. That is still
|
|
21
|
-
supported when mysql2 <0.4 is used.
|
|
22
|
-
|
|
23
|
-
* The connection pool now removes connections if it detects a
|
|
24
|
-
disconnect error that is not raised as a
|
|
25
|
-
Sequel::DatabaseDisconnectError. Such exceptions are reraised
|
|
26
|
-
without converted them to Sequel::DatabaseDisconnectError, but the
|
|
27
|
-
related connection is now removed from the pool.
|
|
28
|
-
|
|
29
|
-
* The reversible migration support now handles add_constraint with an
|
|
30
|
-
options hash as the first argument.
|
|
31
|
-
|
|
32
|
-
* ASTTransformer now handles Sequel.extract, allowing Dataset#qualify
|
|
33
|
-
and other uses of ASTTransformer to work with such values.
|
|
34
|
-
|
|
35
|
-
* The create_view :columns option is now suppported on SQLite 3.9.0+.
|
|
36
|
-
|
|
37
|
-
* An additional disconnect error is now recognized in the postgres
|
|
38
|
-
adapter.
|
|
39
|
-
|
|
40
|
-
* A frozen string literal issue has been fixed when multiple different
|
|
41
|
-
database connection approaches have failed in the jdbc adapter.
|
|
42
|
-
|
|
43
|
-
= Backwards Compatibility
|
|
44
|
-
|
|
45
|
-
* External database adapters need to make sure that
|
|
46
|
-
Database#database_error_classes returns a valid result if called
|
|
47
|
-
during Database#initialize. If you have an external adapter where
|
|
48
|
-
one of the error classes depends on an argument given when
|
|
49
|
-
connecting (such as the connection string), you may have to make
|
|
50
|
-
some changes.
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Sequel::SQL::NumericMethods#coerce has been added, which adds
|
|
4
|
-
support for ruby's coercion protocol when performing numeric
|
|
5
|
-
operations. Previously, Sequel supported code like:
|
|
6
|
-
|
|
7
|
-
Sequel.expr{a - 1}
|
|
8
|
-
|
|
9
|
-
This is because a in this case returns a Sequel::SQL::Indentifier,
|
|
10
|
-
which defines #- to return a Sequel::SQL::NumericExpression. By
|
|
11
|
-
supporting #coerce, the following code now also works:
|
|
12
|
-
|
|
13
|
-
Sequel.expr{1 - a}
|
|
14
|
-
|
|
15
|
-
This is because Integer#- calls #coerce on the argument if it is
|
|
16
|
-
defined (ruby's coercion protocol). Previously, you had to handle
|
|
17
|
-
this differently, using something like:
|
|
18
|
-
|
|
19
|
-
Sequel.expr(1) - a
|
|
20
|
-
# or
|
|
21
|
-
Sequel.-(1, a)
|
|
22
|
-
|
|
23
|
-
* Sequel now supports the ** operator for exponentiation on
|
|
24
|
-
expressions, similar to the +, -, *, and / operators. Sequel uses
|
|
25
|
-
the database power function to implement this by default on the
|
|
26
|
-
databases that support it (most of them). On Access, it uses the ^
|
|
27
|
-
operator, on Derby it is emulated using a combination of exp/ln
|
|
28
|
-
(with some loss of precision). SQLite doesn't support a power
|
|
29
|
-
function at all, but Sequel emulates it using multiplication for
|
|
30
|
-
known integer exponents.
|
|
31
|
-
|
|
32
|
-
* Sequel::SQLTime.date= has been added, which allows you to set the
|
|
33
|
-
date used for Sequel::SQLTime instances. Sequel::SQLTime is a
|
|
34
|
-
subclass of Time that is literalized using only the time components,
|
|
35
|
-
and is the ruby class used to store values of database time columns
|
|
36
|
-
on most adapters. Sequel::SQLTime defaults to using the current
|
|
37
|
-
date, but you can now set a specific date, for more consistency with
|
|
38
|
-
some drivers (Mysql2 uses 2000-01-01, tiny_tds uses 1900-01-01).
|
|
39
|
-
|
|
40
|
-
* The postgres adapter now supports a :driver_options option when
|
|
41
|
-
using the pg driver, which is passed directly to pg. This can be
|
|
42
|
-
used to specify a client SSL certificate or to specify the
|
|
43
|
-
certificate authority root certificate when using
|
|
44
|
-
:sslmode=>'verify-full'.
|
|
45
|
-
|
|
46
|
-
= Other Improvements
|
|
47
|
-
|
|
48
|
-
* Sequel no longer uses after_commit/rollback database hooks by
|
|
49
|
-
default if the after_commit/after_rollback model methods are not
|
|
50
|
-
overridden. This provides a performance speedup, but the main
|
|
51
|
-
benefit is that it no longer causes memory issues when saving a
|
|
52
|
-
large number of model instances in a single transaction, and it
|
|
53
|
-
also works with prepared transactions/2 phase commit. You can
|
|
54
|
-
still set use_after_commit_rollback= manually to force the
|
|
55
|
-
after_commit/rollback setting.
|
|
56
|
-
|
|
57
|
-
Note that Sequel 5 will move after_commit/rollback model hooks to
|
|
58
|
-
a plugin, and the default and recommended approach will be to use
|
|
59
|
-
the database after_commit/rollback hooks in the after_save or
|
|
60
|
-
similar model hooks.
|
|
61
|
-
|
|
62
|
-
= Backwards Compatibility
|
|
63
|
-
|
|
64
|
-
* The Sequel::Model use_after_commit_rollback class and instance
|
|
65
|
-
methods now return nil by default instead of true. nil now
|
|
66
|
-
indicates the default behavior of checking whether the appropriate
|
|
67
|
-
model hook has been defined, and only adding a database hook if so.
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Sequel.[] has been added as an alias to Sequel.expr. This makes it
|
|
4
|
-
a little easier to get Sequel-specific objects:
|
|
5
|
-
|
|
6
|
-
Sequel[:table].* # "table".*
|
|
7
|
-
Sequel[:table__column].as(:alias) # "table"."column" AS "alias"
|
|
8
|
-
Sequel[:column] + 1 # ("column" + 1)
|
|
9
|
-
|
|
10
|
-
* The timestamps plugin now supports an :allow_manual_update option.
|
|
11
|
-
If this option is used, the timestamps plugin will not override the
|
|
12
|
-
update timestamp when saving if the user has modified it since
|
|
13
|
-
retrieving the object.
|
|
14
|
-
|
|
15
|
-
* The touch plugin now also touches associations on create in addition
|
|
16
|
-
to update and delete.
|
|
17
|
-
|
|
18
|
-
* The IntegerMigrator now supports a :relative option, which will
|
|
19
|
-
migrate that many migrations up (for positive numbers) or down (for
|
|
20
|
-
negative numbers).
|
|
21
|
-
|
|
22
|
-
* Database#rollback_checker has been added, which returns a callable
|
|
23
|
-
that can be called later to determine whether the transaction ended
|
|
24
|
-
up committing or rolling back. So if you may need to check
|
|
25
|
-
transaction status at some future point, and don't need immediate
|
|
26
|
-
action on rollback/commit, it is better to use a rollback checker
|
|
27
|
-
than to add an after commit/rollback hook.
|
|
28
|
-
|
|
29
|
-
rbc = nil
|
|
30
|
-
DB.transaction do
|
|
31
|
-
rbc = DB.rollback_checker
|
|
32
|
-
rbc.call #=> nil
|
|
33
|
-
end
|
|
34
|
-
rbc.call # => false
|
|
35
|
-
|
|
36
|
-
DB.transaction(:rollback=>:always) do
|
|
37
|
-
rbc = DB.rollback_checker
|
|
38
|
-
end
|
|
39
|
-
rbc.call # => true
|
|
40
|
-
|
|
41
|
-
* The add_column schema method now supports an :if_not_exists option
|
|
42
|
-
on PostgreSQL 9.6+, which will only add the column if it does not
|
|
43
|
-
already exist:
|
|
44
|
-
|
|
45
|
-
DB.add_column :t, :c, Integer, :if_not_exists=>true
|
|
46
|
-
# ALTER TABLE "t" ADD COLUMN IF NOT EXISTS "c" integer
|
|
47
|
-
|
|
48
|
-
* The add_column schema method now supports an :after and :first
|
|
49
|
-
option on MySQL to add the column after an existing column or as
|
|
50
|
-
the first column:
|
|
51
|
-
|
|
52
|
-
DB.add_column :t, :c, Integer, :first=>true
|
|
53
|
-
# ALTER TABLE `t` ADD COLUMN `c` integer FIRST
|
|
54
|
-
DB.add_column :t, :c1, Integer, :after=>:c2
|
|
55
|
-
# ALTER TABLE `t` ADD COLUMN `c1` integer AFTER `c2`
|
|
56
|
-
|
|
57
|
-
* JSONBOp#insert has been added to the pg_json_ops extension, which
|
|
58
|
-
supports the new jsonb_insert function added in PostgreSQL 9.6+:
|
|
59
|
-
|
|
60
|
-
Sequel.pg_jsonb_op(:c).insert(%w'0 a', 'a'=>1)
|
|
61
|
-
# jsonb_insert("c", ARRAY['0','a'], '{"a":1}'::jsonb, false)
|
|
62
|
-
|
|
63
|
-
* Dataset#full_text_search on PostgreSQL now supports a
|
|
64
|
-
:to_tsquery=>:phrase option, to enable the native phrase searching
|
|
65
|
-
added in PostgreSQL 9.6+:
|
|
66
|
-
|
|
67
|
-
DB[:t].full_text_search(:c, 'foo bar', :to_tsquery=>:phrase)
|
|
68
|
-
# SELECT * FROM "t"
|
|
69
|
-
# WHERE
|
|
70
|
-
# (to_tsvector(CAST('simple' AS regconfig), (COALESCE("c", '')))
|
|
71
|
-
# @@ phraseto_tsquery(CAST('simple' AS regconfig), 'foo bar'))
|
|
72
|
-
|
|
73
|
-
* Sequel::Database.set_shared_adapter_scheme has been added, allowing
|
|
74
|
-
external adapters to add support for Sequel's mock adapter.
|
|
75
|
-
External adapters should have a shared adapter requirable at
|
|
76
|
-
sequel/adapters/shared/adapter_name, that uses the following
|
|
77
|
-
format:
|
|
78
|
-
|
|
79
|
-
# in sequel/adapters/shared/mydb
|
|
80
|
-
module Sequel::MyDB
|
|
81
|
-
Sequel::Database.set_shared_adapter_scheme :mydb, self
|
|
82
|
-
|
|
83
|
-
def self.mock_adapter_setup(db)
|
|
84
|
-
# Any mock-adapter specific setup to perform on the
|
|
85
|
-
# given Database instance
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
module DatabaseMethods
|
|
89
|
-
# methods for all Database objects using this adapter
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
module DatasetMethods
|
|
93
|
-
# methods for all Dataset objects using this adapter
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
= Other Improvements
|
|
99
|
-
|
|
100
|
-
* The hook_class_methods plugin only adds a Database transaction
|
|
101
|
-
hook if one of the after commit/rollback hook class methods is
|
|
102
|
-
actually used. This means that loading the plugin no longer
|
|
103
|
-
keeps all saved/deleted objects in memory until transaction
|
|
104
|
-
commit.
|
|
105
|
-
|
|
106
|
-
* The active_model plugin now uses a rollback checker instead of
|
|
107
|
-
an after_rollback hook, so models that use the active_model plugin
|
|
108
|
-
no longer store all saved model instances in memory until
|
|
109
|
-
transaction commit.
|
|
110
|
-
|
|
111
|
-
* When using the IntegerMigrator, attempting to migrate to a
|
|
112
|
-
migration number above the maximum will now migrate to the lastest
|
|
113
|
-
version, and attempting to migrate to a migration number below 0
|
|
114
|
-
will now migrate all the way down.
|
|
115
|
-
|
|
116
|
-
* The pg_interval extension now supports ActiveSupport::Duration
|
|
117
|
-
objects that use week and hour parts (new in ActiveSupport 5).
|
|
118
|
-
|
|
119
|
-
= Backwards Compatibility
|
|
120
|
-
|
|
121
|
-
* The change to the touch plugin to touch associations on create could
|
|
122
|
-
possibly affect existing behavior, so if you are using this plugin,
|
|
123
|
-
you should test that this does not cause any problems.
|
|
124
|
-
|
|
125
|
-
* External adapters that tried to add support for the mock adapter
|
|
126
|
-
now need to update their code to use the new
|
|
127
|
-
Sequel::Database.set_shared_adapter_scheme method.
|
data/doc/release_notes/4.4.0.txt
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Sequel now supports Sybase SQLAnywhere, via the sqlanywhere and
|
|
4
|
-
jdbc/sqlanywhere adapters.
|
|
5
|
-
|
|
6
|
-
* The filter by associations support now handles cases where the
|
|
7
|
-
association has :conditions or a block (as long as the block
|
|
8
|
-
does not rely on instance-specific behavior). This allows
|
|
9
|
-
you to handle the following:
|
|
10
|
-
|
|
11
|
-
Album.many_to_many :popular_tags, :class=>:Tag do |ds|
|
|
12
|
-
ds.where{tags__popularity > 9000}
|
|
13
|
-
end
|
|
14
|
-
Album.where(:popular_tags=>[Tag[1], Tag[2]])
|
|
15
|
-
|
|
16
|
-
This will return all albums whose popular_tags would include
|
|
17
|
-
at least one of those two tags. Previously, the block would
|
|
18
|
-
be ignored, returning albums containing one those tags even if
|
|
19
|
-
the tags weren't popular.
|
|
20
|
-
|
|
21
|
-
* A table_select plugin has been added that changes the default
|
|
22
|
-
selection for models from * to table.*. This is useful for
|
|
23
|
-
people who want ActiveRecord-like behavior instead of SQL-like
|
|
24
|
-
behavior, where joining tables doesn't automatically include
|
|
25
|
-
columns in the other table.
|
|
26
|
-
|
|
27
|
-
This can fix issues where joining another table that has columns
|
|
28
|
-
with the same name as columns in the model table without
|
|
29
|
-
specifying an explicit selection results in model objects being
|
|
30
|
-
returned where the values in the model object are the values
|
|
31
|
-
from the joined table instead of the model table.
|
|
32
|
-
|
|
33
|
-
* Dataset#offset has been added, for specifying offset separately
|
|
34
|
-
from limit. Previous this was possible via:
|
|
35
|
-
|
|
36
|
-
ds.limit(nil, offset)
|
|
37
|
-
|
|
38
|
-
but this is a friendlier API.
|
|
39
|
-
|
|
40
|
-
* The jdbc adapter now has support for foreign key parsing. This
|
|
41
|
-
is used if there is no specific support for the underlying
|
|
42
|
-
database.
|
|
43
|
-
|
|
44
|
-
* Foreign key parsing is now supported on Oracle.
|
|
45
|
-
|
|
46
|
-
= Other Improvements
|
|
47
|
-
|
|
48
|
-
* Association add_*/remove_*/remove_all_* methods for
|
|
49
|
-
pg_array_to_many associations now work on unsaved model objects.
|
|
50
|
-
|
|
51
|
-
* In the constraint_validations extension, deletes from the
|
|
52
|
-
metadata table are now processed before inserts, so that dropping
|
|
53
|
-
an existing constraint and readding a constraint with the same
|
|
54
|
-
name now works correctly.
|
|
55
|
-
|
|
56
|
-
* Cloning an association now copies the :eager_block option
|
|
57
|
-
correctly from the source association if it was passed as
|
|
58
|
-
the block to the source association method.
|
|
59
|
-
|
|
60
|
-
* Cloning a cloned association now copies the block for the
|
|
61
|
-
association.
|
|
62
|
-
|
|
63
|
-
* The descendants method in the tree plugin no longer modifies an
|
|
64
|
-
array it is iterating over.
|
|
65
|
-
|
|
66
|
-
* The jdbc/postgresql adapter now supports PostgreSQL-specific types,
|
|
67
|
-
with pretty much the same support as the postgres adapter. When
|
|
68
|
-
using the pg_* extensions, the dataset will now handle the
|
|
69
|
-
PostgreSQL types correctly and return instances of the correct
|
|
70
|
-
Ruby classes (e.g. hstore is returned as Sequel::Postgres::HStore).
|
|
71
|
-
|
|
72
|
-
You should no longer need to use the typecast_on_load or
|
|
73
|
-
pg_typecast_on_load plugins when using model objects that use these
|
|
74
|
-
types when using the jdbc/postgresql adapter.
|
|
75
|
-
|
|
76
|
-
* Offset emulation on Oracle now handles cases where selected
|
|
77
|
-
columns can't be ordered.
|
|
78
|
-
|
|
79
|
-
* Offset emulation on DB2 no longer automatically orders on all
|
|
80
|
-
columns if the dataset itself is unordered.
|
|
81
|
-
|
|
82
|
-
* Types containing spaces are now returning correctly when
|
|
83
|
-
parsing the schema in the oracle adapter.
|
|
84
|
-
|
|
85
|
-
* Database#tables no longer returns tables in the recycle bin on
|
|
86
|
-
Oracle.
|
|
87
|
-
|
|
88
|
-
* add_foreign_key now works correctly on HSQLDB, by splitting the
|
|
89
|
-
column addition and constraint addition into two separate
|
|
90
|
-
statements.
|
|
91
|
-
|
|
92
|
-
* add_primary_key now works correctly on H2.
|