sequel 5.29.0 → 5.34.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 +70 -1922
- data/README.rdoc +1 -1
- data/doc/advanced_associations.rdoc +4 -4
- data/doc/association_basics.rdoc +3 -3
- data/doc/code_order.rdoc +12 -2
- data/doc/model_dataset_method_design.rdoc +1 -1
- data/doc/postgresql.rdoc +71 -0
- data/doc/release_notes/5.30.0.txt +20 -0
- data/doc/release_notes/5.31.0.txt +148 -0
- data/doc/release_notes/5.32.0.txt +46 -0
- data/doc/release_notes/5.33.0.txt +24 -0
- data/doc/release_notes/5.34.0.txt +40 -0
- data/doc/testing.rdoc +1 -1
- data/lib/sequel/adapters/shared/access.rb +6 -6
- data/lib/sequel/adapters/shared/mssql.rb +5 -5
- data/lib/sequel/adapters/shared/mysql.rb +9 -9
- data/lib/sequel/adapters/shared/oracle.rb +16 -16
- data/lib/sequel/adapters/shared/postgres.rb +169 -14
- data/lib/sequel/adapters/shared/sqlanywhere.rb +9 -9
- data/lib/sequel/adapters/shared/sqlite.rb +32 -5
- data/lib/sequel/connection_pool/sharded_single.rb +4 -1
- data/lib/sequel/connection_pool/sharded_threaded.rb +12 -12
- data/lib/sequel/connection_pool/single.rb +1 -1
- data/lib/sequel/connection_pool/threaded.rb +2 -2
- data/lib/sequel/core.rb +318 -314
- data/lib/sequel/database/connecting.rb +1 -1
- data/lib/sequel/database/misc.rb +16 -10
- data/lib/sequel/database/query.rb +3 -1
- data/lib/sequel/database/schema_generator.rb +0 -1
- data/lib/sequel/database/schema_methods.rb +15 -16
- data/lib/sequel/database/transactions.rb +12 -13
- data/lib/sequel/dataset/placeholder_literalizer.rb +3 -7
- data/lib/sequel/dataset/query.rb +4 -3
- data/lib/sequel/deprecated.rb +2 -0
- data/lib/sequel/exceptions.rb +2 -0
- data/lib/sequel/extensions/connection_expiration.rb +2 -2
- data/lib/sequel/extensions/connection_validator.rb +2 -2
- data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
- data/lib/sequel/extensions/index_caching.rb +9 -7
- data/lib/sequel/extensions/integer64.rb +2 -0
- data/lib/sequel/extensions/migration.rb +1 -1
- data/lib/sequel/extensions/pg_enum.rb +5 -2
- data/lib/sequel/extensions/pg_hstore.rb +6 -0
- data/lib/sequel/extensions/pg_inet.rb +13 -5
- data/lib/sequel/extensions/pg_interval.rb +2 -0
- data/lib/sequel/extensions/pg_range.rb +2 -0
- data/lib/sequel/extensions/pg_timestamptz.rb +2 -0
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/schema_dumper.rb +10 -4
- data/lib/sequel/extensions/server_block.rb +3 -3
- data/lib/sequel/model.rb +2 -0
- data/lib/sequel/model/associations.rb +30 -18
- data/lib/sequel/model/base.rb +64 -55
- data/lib/sequel/model/plugins.rb +3 -3
- data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
- data/lib/sequel/plugins/association_multi_add_remove.rb +2 -0
- data/lib/sequel/plugins/association_pks.rb +57 -16
- data/lib/sequel/plugins/association_proxies.rb +2 -0
- data/lib/sequel/plugins/boolean_subsets.rb +4 -1
- data/lib/sequel/plugins/class_table_inheritance.rb +26 -26
- data/lib/sequel/plugins/dirty.rb +13 -13
- data/lib/sequel/plugins/forbid_lazy_load.rb +214 -0
- data/lib/sequel/plugins/json_serializer.rb +3 -7
- data/lib/sequel/plugins/rcte_tree.rb +2 -2
- data/lib/sequel/plugins/single_table_inheritance.rb +15 -15
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/subclasses.rb +2 -0
- data/lib/sequel/timezones.rb +6 -4
- data/lib/sequel/version.rb +1 -1
- metadata +17 -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,179 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* A Sequel.split_symbols setting has been added. This setting is
|
|
4
|
-
true by default, so there is no change to backwards compatibility
|
|
5
|
-
by default. However, users can now do:
|
|
6
|
-
|
|
7
|
-
Sequel.split_symbols = false
|
|
8
|
-
|
|
9
|
-
to disable the splitting of symbols. This will make Sequel no
|
|
10
|
-
longer treat symbols with double or triple underscores as qualified
|
|
11
|
-
or aliased identifiers, instead treating them as plain identifiers.
|
|
12
|
-
It will also make Sequel no longer treat virtual row methods with
|
|
13
|
-
double underscores as qualified identifiers. Examples:
|
|
14
|
-
|
|
15
|
-
# Sequel.split_symbols = true
|
|
16
|
-
:column # "column"
|
|
17
|
-
:table__column # "table"."column"
|
|
18
|
-
:column___alias # "column" AS "alias"
|
|
19
|
-
:table__column___alias # "table"."column" AS "alias"
|
|
20
|
-
Sequel.expr{table__column} # "table"."column"
|
|
21
|
-
|
|
22
|
-
# Sequel.split_symbols = false
|
|
23
|
-
:column # "column"
|
|
24
|
-
:table__column # "table__column"
|
|
25
|
-
:column___alias # "column___alias"
|
|
26
|
-
:table__column___alias # "table__column___alias"
|
|
27
|
-
Sequel.expr{table__column} # "table__column"
|
|
28
|
-
|
|
29
|
-
Disabling symbol splitting can make things much easier if leading
|
|
30
|
-
trailing, double, or triple underscores are used in identifiers
|
|
31
|
-
in your database.
|
|
32
|
-
|
|
33
|
-
Disabling symbol splitting makes Sequel simpler, even if it does
|
|
34
|
-
make it slightly less easy to create qualified and aliased
|
|
35
|
-
identifiers. It is possible that the symbol splitting will be
|
|
36
|
-
disabled by default starting in Sequel 5.
|
|
37
|
-
|
|
38
|
-
Note that due to Database symbol literal caching, you should not
|
|
39
|
-
change the Sequel.split_symbols setting after creating a
|
|
40
|
-
Database instance.
|
|
41
|
-
|
|
42
|
-
* SQL::Identifier#[] and SQL::QualifiedIdentifier#[] have been added
|
|
43
|
-
for creating qualified identifiers. This makes it easier and more
|
|
44
|
-
natural to create qualified identifiers from existing identifiers.
|
|
45
|
-
Previously, you could do:
|
|
46
|
-
|
|
47
|
-
Sequel[:column].qualify(:table)
|
|
48
|
-
|
|
49
|
-
You can now use the more natural:
|
|
50
|
-
|
|
51
|
-
Sequel[:table][:column]
|
|
52
|
-
|
|
53
|
-
This can also be used in virtual rows:
|
|
54
|
-
|
|
55
|
-
Sequel.expr{table[:column]}
|
|
56
|
-
|
|
57
|
-
This offers a easy way to create qualified identifers when symbol
|
|
58
|
-
splitting has been disabled.
|
|
59
|
-
|
|
60
|
-
* A symbol_aref extension has been added, allowing the use of
|
|
61
|
-
Symbol#[] to create qualified identifiers if passed a Symbol,
|
|
62
|
-
SQL::Identifier, or SQL::QualifiedIdentifier. This doesn't
|
|
63
|
-
break any existing ruby behavior, as ruby currrently raises
|
|
64
|
-
an exception in such cases. Example:
|
|
65
|
-
|
|
66
|
-
:table[:column] # "table"."column"
|
|
67
|
-
|
|
68
|
-
This extension can make it easier to create qualified identifiers
|
|
69
|
-
if symbol splitting is disabled.
|
|
70
|
-
|
|
71
|
-
A symbol_aref_refinement extension has also been added, which
|
|
72
|
-
adds a refinement version of the extension that can be enabled via:
|
|
73
|
-
|
|
74
|
-
using Sequel::SymbolAref
|
|
75
|
-
|
|
76
|
-
* A symbol_as extension has been added, which adds the Symbol#as method
|
|
77
|
-
to create aliased identifiers. This was previously part of the core
|
|
78
|
-
extensions, but has been separated so it can be included by itself.
|
|
79
|
-
Example:
|
|
80
|
-
|
|
81
|
-
:column.as(:alias) # "column" AS "alias"
|
|
82
|
-
|
|
83
|
-
This extension can make it easier to create aliased identifiers if
|
|
84
|
-
symbol splitting is disabled.
|
|
85
|
-
|
|
86
|
-
A symbol_as_refinement extension has also been added, which
|
|
87
|
-
adds a refinement version of the extension that can be enabled via:
|
|
88
|
-
|
|
89
|
-
using Sequel::SymbolAs
|
|
90
|
-
|
|
91
|
-
* An s extension has been added, which adds the Sequel::S module,
|
|
92
|
-
containing a private #S method that calls Sequel.expr. You can
|
|
93
|
-
include this module in any module or class where you would like the
|
|
94
|
-
S method to be available:
|
|
95
|
-
|
|
96
|
-
class Album < Sequel::Model
|
|
97
|
-
extend Sequel::S
|
|
98
|
-
one_to_many :tracks, :order=>S(:number).desc
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
You can include this in Object if you want the S method to be
|
|
102
|
-
available globally:
|
|
103
|
-
|
|
104
|
-
Object.send(:include, Sequel::S)
|
|
105
|
-
|
|
106
|
-
Sequel::S also works if it is used as a refinement, adding the S
|
|
107
|
-
method to Object while the refinement is active:
|
|
108
|
-
|
|
109
|
-
using Sequel::S
|
|
110
|
-
|
|
111
|
-
This extension can make it easier to create qualified and aliased
|
|
112
|
-
identifiers if symbol splitting is disabled:
|
|
113
|
-
|
|
114
|
-
S(:table)[:column]
|
|
115
|
-
S(:column).as(:alias)
|
|
116
|
-
|
|
117
|
-
* Dataset#insert_conflict on PostgreSQL now supports a :conflict_where
|
|
118
|
-
option, allowing for the handling of insert conflicts when using a
|
|
119
|
-
partial unique index:
|
|
120
|
-
|
|
121
|
-
DB[:table].insert_conflict(:target=>:a,
|
|
122
|
-
:conflict_where=>{:c=>true}).insert(:a=>1, :b=>2)
|
|
123
|
-
# INSERT INTO TABLE (a, b) VALUES (1, 2)
|
|
124
|
-
# ON CONFLICT (a) WHERE (c IS TRUE) DO NOTHING
|
|
125
|
-
|
|
126
|
-
= Other Improvements
|
|
127
|
-
|
|
128
|
-
* Sequel no longer attempts to combine arguments for non-associative
|
|
129
|
-
operators, as doing so leads to invalid code in cases such as:
|
|
130
|
-
|
|
131
|
-
Sequel.expr{column1 - (column2 - 1)}
|
|
132
|
-
|
|
133
|
-
* Sequel now automatically adds NOT NULL constraints on columns when
|
|
134
|
-
adding a primary key constraint on the columns, if the database
|
|
135
|
-
doesn't handle that situation correctly.
|
|
136
|
-
|
|
137
|
-
* Database#rollback_checker now returns a thread-safe object.
|
|
138
|
-
|
|
139
|
-
* SQL::QualifiedIdentifier#initialize now converts SQL::Identifier
|
|
140
|
-
arguments to strings, fixing usage of such objects in the
|
|
141
|
-
schema methods.
|
|
142
|
-
|
|
143
|
-
* The prepared_statements plugin now correctly handles lookup by
|
|
144
|
-
primary key on models with joined datasets.
|
|
145
|
-
|
|
146
|
-
* The dataset_associations plugin now handles many_through_many and
|
|
147
|
-
one_through_many associations that use a single join table. Note
|
|
148
|
-
there is no reason to create such associations, as many_to_many
|
|
149
|
-
and one_through_one associations will work for such cases.
|
|
150
|
-
|
|
151
|
-
* The insert_returning_select plugin now handles cases where the
|
|
152
|
-
model doesn't have a valid dataset, fixing usage with the
|
|
153
|
-
lazy_attributes and dataset_associations plugins, and potentially
|
|
154
|
-
other plugins.
|
|
155
|
-
|
|
156
|
-
* The column_select plugin no longer raises an exception if the
|
|
157
|
-
model's table does not exist.
|
|
158
|
-
|
|
159
|
-
* The class_table_inheritance plugin now works when the
|
|
160
|
-
prepared_statements plugin is also used.
|
|
161
|
-
|
|
162
|
-
* Some adapters now avoid thread-safety issues during loading on
|
|
163
|
-
ruby implementations without a GVL by avoiding the modification of
|
|
164
|
-
shared datastructures.
|
|
165
|
-
|
|
166
|
-
* When using Database#tables with the :qualify=>true option on
|
|
167
|
-
PostgreSQL, table names with double or triple underscores are
|
|
168
|
-
now handled correctly.
|
|
169
|
-
|
|
170
|
-
= Backwards Compatibility
|
|
171
|
-
|
|
172
|
-
* The following Dataset constants are now frozen: NON_SQL_OPTIONS,
|
|
173
|
-
ACTION_METHODS, QUERY_METHODS, CONDITIONED_JOIN_TYPES,
|
|
174
|
-
UNCONDITIONED_JOIN_TYPES, and JOIN_METHODS. Of these,
|
|
175
|
-
NON_SQL_OPTIONS was previously modified in a non-thread-safe manner
|
|
176
|
-
by some adapters. External adapters should switch to having the
|
|
177
|
-
adapter's dataset non_sql_options method return an array of options
|
|
178
|
-
that do not affect the SELECT SQL for the adapter's datasets, rather
|
|
179
|
-
than modifying NON_SQL_OPTIONS.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Dataset#with_* methods have been added as equivalents for a
|
|
4
|
-
few Dataset#*= methods, but instead of modifying the receiver, they
|
|
5
|
-
return a modified copy, similar to the dataset query methods.
|
|
6
|
-
Specific methods added:
|
|
7
|
-
|
|
8
|
-
with_extend :: Extends clone with given modules
|
|
9
|
-
with_row_proc :: Modifies row_proc in clone
|
|
10
|
-
with_quote_identifiers :: Modifies quote_identifiers setting in
|
|
11
|
-
clone
|
|
12
|
-
with_identifier_input_method :: Modifies identifier_input_method
|
|
13
|
-
setting in clone
|
|
14
|
-
with_identifier_output_method :: Modifies identifier_output_method
|
|
15
|
-
setting in clone
|
|
16
|
-
|
|
17
|
-
Similarly, on Microsoft SQL Server, a with_mssql_unicode_strings
|
|
18
|
-
method has been added, which returns a clone with the
|
|
19
|
-
mssql_unicode_strings setting modified.
|
|
20
|
-
|
|
21
|
-
* On DB2, Sequel now supports an :offset_strategy Database option,
|
|
22
|
-
which can be set to :limit_offset for "LIMIT X OFFSET Y" or
|
|
23
|
-
:offset_fetch for "OFFSET Y FETCH FIRST X ROWS ONLY". Depending
|
|
24
|
-
on what version of DB2 is used and how DB2 is configured, it's
|
|
25
|
-
possible one of these strategies will work. For backwards
|
|
26
|
-
compatibility, the current default is still to emulate offsets
|
|
27
|
-
using the ROW_NUMBER window function.
|
|
28
|
-
|
|
29
|
-
* In the json_serializer plugin, you can now use an
|
|
30
|
-
Sequel::SQL::AliasedExpression instance as an association name
|
|
31
|
-
value, which allows you to rename the association in the resulting
|
|
32
|
-
JSON:
|
|
33
|
-
|
|
34
|
-
album.to_json(:include=>{Sequel.as(:album, :s)=>{:only=>:name}})
|
|
35
|
-
# => '{"id":1,"name":"RF","artist_id":2,"s":{"name":"YJM"}}'
|
|
36
|
-
|
|
37
|
-
= Other Improvements
|
|
38
|
-
|
|
39
|
-
* The association dataset methods now correctly handle cases where
|
|
40
|
-
one of the keys is nil. Previously, they would incorrectly use an
|
|
41
|
-
IS NULL predicate in such cases. Now, they use a false predicate.
|
|
42
|
-
|
|
43
|
-
* The hook_class_methods plugin handling of commit hooks has been
|
|
44
|
-
fixed. The implementation of commit hooks (but not rollback
|
|
45
|
-
hooks) was broken in hook_class_methods starting in 4.39.0 due to
|
|
46
|
-
changes to avoid keeping references to all model instances until
|
|
47
|
-
the transaction was committed or rolled back.
|
|
48
|
-
|
|
49
|
-
* Using the Fixnum schema method no longer raises a warning on ruby
|
|
50
|
-
2.4+, as it now uses the Integer class instead of the Fixnum
|
|
51
|
-
constant.
|
|
52
|
-
|
|
53
|
-
* The ado adapter has been greatly improved. It now avoids memory
|
|
54
|
-
leaks, has much better type handling, and passes almost all specs.
|
|
55
|
-
Note that the ado adapter's behavior can change depending on the
|
|
56
|
-
version of ruby in use, try to use ruby 2.2+ for best compatibility.
|
|
57
|
-
|
|
58
|
-
* Dataset#graph no longer mutates the receiver. Previously, it set
|
|
59
|
-
an empty hash as the :graph option in the receiver, which was
|
|
60
|
-
unintentional and not desired.
|
|
61
|
-
|
|
62
|
-
* Pure java exceptions that don't support the message= method are now
|
|
63
|
-
handled properly when reraising the exception on connection errors
|
|
64
|
-
in the jdbc adapter.
|
|
65
|
-
|
|
66
|
-
= Backwards Compatibility
|
|
67
|
-
|
|
68
|
-
* Support for using the Bignum constant as a generic type has been
|
|
69
|
-
removed, as was preannounced in the 4.36.0 release notes. Users
|
|
70
|
-
should switch to using the :Bignum constant if they haven't already.
|
|
71
|
-
|
|
72
|
-
* Users of the ado adapter may need to update their code now that the
|
|
73
|
-
ado adapter correctly handles most types.
|
|
74
|
-
|
|
75
|
-
* The spec_*_w rake tasks in the repository now require ruby 2.4+ and
|
|
76
|
-
use the warning library for filtering warnings, instead of trying to
|
|
77
|
-
filter warnings with egrep.
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* There have been numerous improvements this release related to
|
|
4
|
-
frozen datasets. Frozen datasets now work in almost all cases,
|
|
5
|
-
except when calling a dataset mutation method.
|
|
6
|
-
|
|
7
|
-
When using ruby 2.4, Sequel uses the new support for
|
|
8
|
-
clone(:freeze=>false) to actually freeze datasets while allowing
|
|
9
|
-
them to copy singleton classes/extended modules from the dataset
|
|
10
|
-
calling clone. On earlier versions of ruby, the dataset opts
|
|
11
|
-
are now frozen, preventing more types of accidental modification.
|
|
12
|
-
|
|
13
|
-
The dataset internals were refactored to reduce the number of
|
|
14
|
-
instance variables. Now, datasets store all of their state
|
|
15
|
-
in opts. Additionally, all datasets now use a thread-safe
|
|
16
|
-
cache for storing cached state such as the dataset's columns.
|
|
17
|
-
Previously, accessing/setting the columns was not thread-safe,
|
|
18
|
-
unless the ruby interpreter used thread-safe methods for
|
|
19
|
-
instance variable getting/setting.
|
|
20
|
-
|
|
21
|
-
Frozen datasets use this new cache to optimize repeated method
|
|
22
|
-
calls, resulting in substantial performance speedups. This can
|
|
23
|
-
include caching returned and/or intermediate datasets, SELECT and
|
|
24
|
-
DELETE SQL generated, as well as internal objects designed to
|
|
25
|
-
optimize the building of SQL strings with different arguments.
|
|
26
|
-
|
|
27
|
-
Even for fairly simple datasets, this can result in up to 10x
|
|
28
|
-
performance improvements for dataset methods that don't require
|
|
29
|
-
database access, and up to 3x performance improvements for dataset
|
|
30
|
-
methods that do require database access.
|
|
31
|
-
|
|
32
|
-
* A freeze_datasets Database extension has been added which
|
|
33
|
-
automatically freezes all datasets for the Database instance.
|
|
34
|
-
This also enables dataset caching when creating datasets using
|
|
35
|
-
Database#[] and #from using a single symbol, such as
|
|
36
|
-
DB[:table_name]. In addition to speeding up the methods
|
|
37
|
-
themselves, this also allows code such as:
|
|
38
|
-
|
|
39
|
-
DB[:foo].for_update.first
|
|
40
|
-
|
|
41
|
-
To run much faster by avoiding any dataset creation or SQL
|
|
42
|
-
string building after the first call.
|
|
43
|
-
|
|
44
|
-
The freeze_datasets extension makes #dup an alias of #clone,
|
|
45
|
-
ensuring that all cloned datasets that were originally created
|
|
46
|
-
by the Database instance are frozen.
|
|
47
|
-
|
|
48
|
-
It is highly recommended that you start using the
|
|
49
|
-
freeze_datasets extension in your applications using Sequel,
|
|
50
|
-
as this extension will become the default and only behavior
|
|
51
|
-
in Sequel 5. Unfrozen datasets and dataset mutation will
|
|
52
|
-
not be supported in Sequel 5.
|
|
53
|
-
|
|
54
|
-
* The dataset methods created by Model#subset and
|
|
55
|
-
Model::DatasetModule#subset now cache the returned dataset if the
|
|
56
|
-
current dataset is frozen, none of the arguments are Procs, and a
|
|
57
|
-
block is not provided. This can result in up to a 3x performance
|
|
58
|
-
improvement for method chains that use subsets, such as:
|
|
59
|
-
|
|
60
|
-
ModelClass.subset1.subset2.subset3.first
|
|
61
|
-
|
|
62
|
-
* Model::DatasetModule has had the following methods added to it:
|
|
63
|
-
distinct, exclude, exclude_having, grep, group, group_and_count,
|
|
64
|
-
group_append, having, limit, offset, order, order_append,
|
|
65
|
-
order_prepend, select, select_all, select_append, select_group,
|
|
66
|
-
where, and server. These methods create dataset methods that
|
|
67
|
-
when called call the dataset method with the same name on the
|
|
68
|
-
receiver. Example:
|
|
69
|
-
|
|
70
|
-
class ModelClass < Sequel::Model
|
|
71
|
-
dataset_module do
|
|
72
|
-
select :with_id_and_name, :id, :name
|
|
73
|
-
where :active, :active
|
|
74
|
-
order :by_name, :name
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
ModelClass.active.by_name.with_id_and_name.all
|
|
79
|
-
# SELECT id, name FROM model_classes WHERE active ORDER BY name
|
|
80
|
-
# Equivalent to:
|
|
81
|
-
ModelClass.
|
|
82
|
-
where(:active).
|
|
83
|
-
order(:name).
|
|
84
|
-
select(:id, :name).
|
|
85
|
-
all
|
|
86
|
-
|
|
87
|
-
In addition to being easier than defining the methods manually, this
|
|
88
|
-
also enables caching of the datasets in most cases, so that the
|
|
89
|
-
above method chain does not create any additional datasets after the
|
|
90
|
-
first call.
|
|
91
|
-
|
|
92
|
-
* Dataset#with_extend now accepts a block and will create a module
|
|
93
|
-
with that block that will be used to extend the object, after any
|
|
94
|
-
modules given as arguments have been applied:
|
|
95
|
-
|
|
96
|
-
DB[:table].with_extend{def foo; 1 end}.foo => 1
|
|
97
|
-
|
|
98
|
-
* The identifier mangling support for datasets
|
|
99
|
-
(identifier_input_method and identifier_output_method) has been
|
|
100
|
-
moved to a identifier_mangling database extension, but it is still
|
|
101
|
-
loaded by default. You can disable the loading of this extension
|
|
102
|
-
by using the :identifier_mangling=>false Database option. Sequel
|
|
103
|
-
5 will stop loading of this extension by default, requiring you to
|
|
104
|
-
load it manually via Database#extension if you need it.
|
|
105
|
-
|
|
106
|
-
Sequel's default remains the same as before, to convert identifiers
|
|
107
|
-
to uppercase on input and lowercase on output on databases that
|
|
108
|
-
fold unquoted identifiers to uppercase (per the SQL standard), and
|
|
109
|
-
to not mangle identifiers at all on databases that fold unquoted
|
|
110
|
-
identifiers to lowercase (MySQL, PostgreSQL, SQLite). The
|
|
111
|
-
identifier_mangling extension just allows you to change the default
|
|
112
|
-
behavior.
|
|
113
|
-
|
|
114
|
-
* On DB2, Dataset#with_convert_smallint_to_bool has been added,
|
|
115
|
-
which returns a modified dataset with the
|
|
116
|
-
convert_smallint_to_bool setting changed. Previously,
|
|
117
|
-
chaging the smallint_to_bool setting required mutating a
|
|
118
|
-
dataset.
|
|
119
|
-
|
|
120
|
-
* The mock adapter now supports Dataset#with_{autoid,fetch,numrows},
|
|
121
|
-
allowing mocking of results when using frozen datasets.
|
|
122
|
-
|
|
123
|
-
= Other Improvements
|
|
124
|
-
|
|
125
|
-
* Using an eager load callback when eager loading a one_to_one
|
|
126
|
-
association that uses an order or offset now works correctly
|
|
127
|
-
on databases that do not support window functions.
|
|
128
|
-
|
|
129
|
-
* Dataset#== and Dataset#hash are now faster as they don't need
|
|
130
|
-
to generate SQL. As all internal state is now stored in the
|
|
131
|
-
opts, it just considers the class, db, and opts.
|
|
132
|
-
|
|
133
|
-
* The prepared statement/bound variable internals were heavily
|
|
134
|
-
refactored to be simpler and more robust, to more easily
|
|
135
|
-
support native prepared statements, and to work with frozen
|
|
136
|
-
datasets.
|
|
137
|
-
|
|
138
|
-
* When emulating alter table operations on SQLite, integer
|
|
139
|
-
primary keys now use AUTOINCREMENT, since that is Sequel's
|
|
140
|
-
default when creating tables on SQLite.
|
|
141
|
-
|
|
142
|
-
* On SQLite, Database#schema no longer uses :auto_increment entries
|
|
143
|
-
when the table has a composite primary key.
|
|
144
|
-
|
|
145
|
-
* Most dataset opts values are now frozen to prevent accidental
|
|
146
|
-
modification and allow for thread-safe access.
|
|
147
|
-
|
|
148
|
-
* SQL::Expression subclass instances are now always frozen.
|
|
149
|
-
|
|
150
|
-
* Dataset::PlaceholderLiteralizer and
|
|
151
|
-
Dataset::PlaceholderLiteralizer::Argument instances are now
|
|
152
|
-
always frozen.
|
|
153
|
-
|
|
154
|
-
* Dataset#ungraphed now works on a frozen model dataset.
|
|
155
|
-
|
|
156
|
-
* Model#set_server now works when the model uses a frozen dataset.
|
|
157
|
-
|
|
158
|
-
* The pagination and null_dataset extensions now work on frozen
|
|
159
|
-
datasets.
|
|
160
|
-
|
|
161
|
-
* Dataset#server now works for frozen model datasets when the
|
|
162
|
-
model uses the sharding plugin.
|
|
163
|
-
|
|
164
|
-
* Calling eager_graph or association_join on a model dataset
|
|
165
|
-
is now deprecated if it would ignore the association's
|
|
166
|
-
:conditions option and the :graph_conditions, :graph_block,
|
|
167
|
-
or :graph_only_conditions association option is not used.
|
|
168
|
-
|
|
169
|
-
* Using the :eager_limit dataset option in an eager_load
|
|
170
|
-
callback with a singular association now raises an Error.
|
|
171
|
-
Previously, the behavior was undefined.
|
|
172
|
-
|
|
173
|
-
* Calling Dataset#prepare without a name argument is now
|
|
174
|
-
deprecated. Previously, it raised an Error in the mysql, mysql2,
|
|
175
|
-
and postgres adapters, but was allowed on other adapters.
|
|
176
|
-
|
|
177
|
-
* The looser_typecasting extension now handles the strict
|
|
178
|
-
BigDecimal parsing introduced in ruby 2.4.
|
|
179
|
-
|
|
180
|
-
* When using the duplicate_columns_handler extension with
|
|
181
|
-
:on_duplicate_columns=>:warn, the warning message is now
|
|
182
|
-
prepend with the file and line.
|
|
183
|
-
|
|
184
|
-
* Internally, Sequel uses Dataset#where instead of #filter,
|
|
185
|
-
reverse instead of reverse_order, and select_append instead
|
|
186
|
-
of select_more to save a method call and array creation.
|
|
187
|
-
|
|
188
|
-
* Dataset#db= and #opts= in the sequel_3_dataset_methods
|
|
189
|
-
extension now raise a RuntimeError if the dataset is frozen.
|
|
190
|
-
|
|
191
|
-
* Sequel's tests now run without warnings when using Minitest
|
|
192
|
-
5.10.
|
|
193
|
-
|
|
194
|
-
* Sequel now issues a deprecation message instead of a warning
|
|
195
|
-
when used with PostgreSQL <8.2.
|
|
196
|
-
|
|
197
|
-
= Backwards Compatibility
|
|
198
|
-
|
|
199
|
-
* Any external dataset extensions or adapters that modified or
|
|
200
|
-
directly accessed dataset instance variables other than @db and
|
|
201
|
-
@opts (such as @columns) needs to be updated to work with the
|
|
202
|
-
new dataset internals.
|
|
203
|
-
|
|
204
|
-
* Any external adapters that implemented native prepared statements/
|
|
205
|
-
bound variables need to be updated to work with the new internal
|
|
206
|
-
prepared statement API.
|
|
207
|
-
|
|
208
|
-
* Model.set_dataset and .dataset= now operate on a clone of the
|
|
209
|
-
dataset given, instead of mutating the dataset that is passed in.
|
|
210
|
-
This allows them to work with frozen datasets, but can change
|
|
211
|
-
the behavior if you mutate a dataset after passing it to one
|
|
212
|
-
of these methods. Anyone doing that needs to change their code
|
|
213
|
-
to get the current copy of the model's dataset, and mutate that,
|
|
214
|
-
or better yet, avoid mutating datasets at all.
|
|
215
|
-
|
|
216
|
-
* Dataset#columns now calls #columns! instead of the other way around,
|
|
217
|
-
which may require external plugins/extensions that override #columns
|
|
218
|
-
to switch to overriding #columns!.
|
|
219
|
-
|
|
220
|
-
* External adapters that want to disable identifier mangling by
|
|
221
|
-
default need to be updated.
|