sequel 5.20.0 → 5.49.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +398 -1922
- data/MIT-LICENSE +1 -1
- data/README.rdoc +7 -7
- data/doc/advanced_associations.rdoc +4 -4
- data/doc/association_basics.rdoc +80 -16
- data/doc/cheat_sheet.rdoc +6 -5
- data/doc/code_order.rdoc +10 -12
- data/doc/dataset_filtering.rdoc +17 -2
- data/doc/fork_safety.rdoc +84 -0
- data/doc/migration.rdoc +11 -5
- data/doc/model_dataset_method_design.rdoc +1 -1
- data/doc/model_plugins.rdoc +1 -1
- data/doc/opening_databases.rdoc +10 -2
- data/doc/postgresql.rdoc +82 -3
- data/doc/querying.rdoc +4 -4
- data/doc/release_notes/5.21.0.txt +87 -0
- data/doc/release_notes/5.22.0.txt +48 -0
- data/doc/release_notes/5.23.0.txt +56 -0
- data/doc/release_notes/5.24.0.txt +56 -0
- data/doc/release_notes/5.25.0.txt +32 -0
- data/doc/release_notes/5.26.0.txt +35 -0
- data/doc/release_notes/5.27.0.txt +21 -0
- data/doc/release_notes/5.28.0.txt +16 -0
- data/doc/release_notes/5.29.0.txt +22 -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/release_notes/5.35.0.txt +56 -0
- data/doc/release_notes/5.36.0.txt +60 -0
- data/doc/release_notes/5.37.0.txt +30 -0
- data/doc/release_notes/5.38.0.txt +28 -0
- data/doc/release_notes/5.39.0.txt +19 -0
- data/doc/release_notes/5.40.0.txt +40 -0
- data/doc/release_notes/5.41.0.txt +25 -0
- data/doc/release_notes/5.42.0.txt +136 -0
- data/doc/release_notes/5.43.0.txt +98 -0
- data/doc/release_notes/5.44.0.txt +32 -0
- data/doc/release_notes/5.45.0.txt +34 -0
- data/doc/release_notes/5.46.0.txt +87 -0
- data/doc/release_notes/5.47.0.txt +59 -0
- data/doc/release_notes/5.48.0.txt +14 -0
- data/doc/release_notes/5.49.0.txt +59 -0
- data/doc/sharding.rdoc +2 -0
- data/doc/sql.rdoc +13 -1
- data/doc/testing.rdoc +20 -7
- data/doc/transactions.rdoc +0 -8
- data/doc/validations.rdoc +1 -1
- data/doc/virtual_rows.rdoc +1 -1
- data/lib/sequel/adapters/ado/access.rb +1 -1
- data/lib/sequel/adapters/ado.rb +43 -35
- data/lib/sequel/adapters/ibmdb.rb +2 -2
- data/lib/sequel/adapters/jdbc/mysql.rb +6 -6
- data/lib/sequel/adapters/jdbc/postgresql.rb +11 -17
- data/lib/sequel/adapters/jdbc/sqlite.rb +29 -0
- data/lib/sequel/adapters/jdbc.rb +24 -6
- data/lib/sequel/adapters/mysql.rb +1 -1
- data/lib/sequel/adapters/mysql2.rb +2 -3
- data/lib/sequel/adapters/odbc.rb +8 -6
- data/lib/sequel/adapters/oracle.rb +5 -4
- data/lib/sequel/adapters/postgres.rb +15 -9
- data/lib/sequel/adapters/shared/access.rb +6 -6
- data/lib/sequel/adapters/shared/mssql.rb +66 -21
- data/lib/sequel/adapters/shared/mysql.rb +27 -10
- data/lib/sequel/adapters/shared/oracle.rb +29 -23
- data/lib/sequel/adapters/shared/postgres.rb +271 -32
- data/lib/sequel/adapters/shared/sqlanywhere.rb +9 -9
- data/lib/sequel/adapters/shared/sqlite.rb +161 -19
- data/lib/sequel/adapters/sqlanywhere.rb +1 -1
- data/lib/sequel/adapters/sqlite.rb +1 -1
- data/lib/sequel/adapters/tinytds.rb +15 -2
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +4 -1
- data/lib/sequel/ast_transformer.rb +6 -0
- 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 +333 -319
- data/lib/sequel/database/connecting.rb +3 -4
- data/lib/sequel/database/logging.rb +7 -1
- data/lib/sequel/database/misc.rb +31 -12
- data/lib/sequel/database/query.rb +3 -1
- data/lib/sequel/database/schema_generator.rb +53 -51
- data/lib/sequel/database/schema_methods.rb +38 -23
- data/lib/sequel/database/transactions.rb +17 -18
- data/lib/sequel/dataset/actions.rb +14 -9
- data/lib/sequel/dataset/features.rb +16 -0
- data/lib/sequel/dataset/misc.rb +2 -2
- data/lib/sequel/dataset/placeholder_literalizer.rb +3 -7
- data/lib/sequel/dataset/prepared_statements.rb +2 -0
- data/lib/sequel/dataset/query.rb +26 -9
- data/lib/sequel/dataset/sql.rb +76 -25
- data/lib/sequel/dataset.rb +4 -2
- data/lib/sequel/deprecated.rb +3 -1
- data/lib/sequel/exceptions.rb +2 -0
- data/lib/sequel/extensions/_pretty_table.rb +1 -2
- data/lib/sequel/extensions/any_not_empty.rb +45 -0
- data/lib/sequel/extensions/async_thread_pool.rb +438 -0
- data/lib/sequel/extensions/blank.rb +8 -0
- data/lib/sequel/extensions/columns_introspection.rb +1 -2
- data/lib/sequel/extensions/connection_expiration.rb +2 -2
- data/lib/sequel/extensions/connection_validator.rb +2 -2
- data/lib/sequel/extensions/core_refinements.rb +2 -0
- data/lib/sequel/extensions/date_arithmetic.rb +36 -24
- data/lib/sequel/extensions/duplicate_columns_handler.rb +3 -1
- data/lib/sequel/extensions/eval_inspect.rb +2 -0
- data/lib/sequel/extensions/exclude_or_null.rb +68 -0
- data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
- data/lib/sequel/extensions/index_caching.rb +9 -7
- data/lib/sequel/extensions/inflector.rb +9 -1
- data/lib/sequel/extensions/integer64.rb +2 -0
- data/lib/sequel/extensions/migration.rb +11 -3
- data/lib/sequel/extensions/named_timezones.rb +56 -8
- data/lib/sequel/extensions/pagination.rb +1 -1
- data/lib/sequel/extensions/pg_array.rb +5 -0
- data/lib/sequel/extensions/pg_array_ops.rb +14 -6
- data/lib/sequel/extensions/pg_enum.rb +11 -3
- data/lib/sequel/extensions/pg_extended_date_support.rb +2 -2
- data/lib/sequel/extensions/pg_hstore.rb +6 -0
- data/lib/sequel/extensions/pg_hstore_ops.rb +54 -2
- data/lib/sequel/extensions/pg_inet.rb +15 -5
- data/lib/sequel/extensions/pg_interval.rb +36 -8
- data/lib/sequel/extensions/pg_json.rb +387 -123
- data/lib/sequel/extensions/pg_json_ops.rb +238 -0
- data/lib/sequel/extensions/pg_loose_count.rb +3 -1
- data/lib/sequel/extensions/pg_range.rb +17 -9
- data/lib/sequel/extensions/pg_range_ops.rb +2 -0
- data/lib/sequel/extensions/pg_row.rb +4 -2
- data/lib/sequel/extensions/pg_row_ops.rb +24 -0
- data/lib/sequel/extensions/pg_timestamptz.rb +2 -0
- data/lib/sequel/extensions/query.rb +3 -0
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/s.rb +2 -0
- data/lib/sequel/extensions/schema_dumper.rb +24 -7
- data/lib/sequel/extensions/server_block.rb +18 -7
- data/lib/sequel/extensions/sql_comments.rb +2 -2
- data/lib/sequel/extensions/string_agg.rb +1 -1
- data/lib/sequel/extensions/symbol_aref_refinement.rb +2 -0
- data/lib/sequel/extensions/symbol_as_refinement.rb +2 -0
- data/lib/sequel/extensions/to_dot.rb +9 -3
- data/lib/sequel/model/associations.rb +356 -117
- data/lib/sequel/model/base.rb +107 -68
- data/lib/sequel/model/errors.rb +10 -1
- data/lib/sequel/model/inflections.rb +1 -1
- data/lib/sequel/model/plugins.rb +9 -3
- data/lib/sequel/model.rb +3 -1
- data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
- data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
- data/lib/sequel/plugins/association_pks.rb +60 -18
- data/lib/sequel/plugins/association_proxies.rb +8 -2
- data/lib/sequel/plugins/async_thread_pool.rb +39 -0
- data/lib/sequel/plugins/auto_validations.rb +39 -5
- data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
- data/lib/sequel/plugins/blacklist_security.rb +1 -2
- data/lib/sequel/plugins/boolean_subsets.rb +4 -1
- data/lib/sequel/plugins/caching.rb +3 -0
- data/lib/sequel/plugins/class_table_inheritance.rb +33 -28
- data/lib/sequel/plugins/column_encryption.rb +728 -0
- data/lib/sequel/plugins/composition.rb +7 -2
- data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
- data/lib/sequel/plugins/constraint_validations.rb +2 -1
- data/lib/sequel/plugins/csv_serializer.rb +28 -9
- data/lib/sequel/plugins/dataset_associations.rb +4 -1
- data/lib/sequel/plugins/dirty.rb +60 -22
- data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
- data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
- data/lib/sequel/plugins/insert_conflict.rb +72 -0
- data/lib/sequel/plugins/instance_specific_default.rb +113 -0
- data/lib/sequel/plugins/json_serializer.rb +57 -35
- data/lib/sequel/plugins/lazy_attributes.rb +1 -1
- data/lib/sequel/plugins/many_through_many.rb +108 -9
- data/lib/sequel/plugins/nested_attributes.rb +15 -3
- data/lib/sequel/plugins/pg_array_associations.rb +58 -41
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +91 -30
- data/lib/sequel/plugins/prepared_statements.rb +15 -12
- data/lib/sequel/plugins/prepared_statements_safe.rb +1 -3
- data/lib/sequel/plugins/rcte_tree.rb +43 -35
- data/lib/sequel/plugins/serialization.rb +8 -3
- data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
- data/lib/sequel/plugins/sharding.rb +11 -5
- data/lib/sequel/plugins/single_table_inheritance.rb +22 -15
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/static_cache.rb +9 -4
- data/lib/sequel/plugins/static_cache_cache.rb +53 -0
- data/lib/sequel/plugins/string_stripper.rb +1 -1
- data/lib/sequel/plugins/subclasses.rb +2 -0
- data/lib/sequel/plugins/throw_failures.rb +1 -1
- data/lib/sequel/plugins/timestamps.rb +1 -1
- data/lib/sequel/plugins/tree.rb +9 -4
- data/lib/sequel/plugins/typecast_on_load.rb +3 -2
- data/lib/sequel/plugins/unused_associations.rb +521 -0
- data/lib/sequel/plugins/update_or_create.rb +1 -1
- data/lib/sequel/plugins/validation_class_methods.rb +5 -1
- data/lib/sequel/plugins/validation_helpers.rb +18 -11
- data/lib/sequel/plugins/xml_serializer.rb +1 -1
- data/lib/sequel/sql.rb +20 -5
- data/lib/sequel/timezones.rb +63 -17
- data/lib/sequel/version.rb +1 -1
- metadata +113 -381
- 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 -804
- data/spec/adapters/mysql_spec.rb +0 -1065
- data/spec/adapters/oracle_spec.rb +0 -371
- data/spec/adapters/postgres_spec.rb +0 -4125
- 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 -2865
- data/spec/core/dataset_spec.rb +0 -5515
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1455
- 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 -1826
- 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/arbitrary_servers_spec.rb +0 -109
- data/spec/extensions/association_dependencies_spec.rb +0 -125
- 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 -189
- 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/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/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_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 -336
- 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 -111
- data/spec/extensions/nested_attributes_spec.rb +0 -767
- 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 -172
- 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 -289
- data/spec/extensions/pg_json_spec.rb +0 -262
- 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 -519
- 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 -381
- 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 -97
- data/spec/extensions/server_logging_spec.rb +0 -45
- data/spec/extensions/sharding_spec.rb +0 -189
- 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 -63
- 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_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 -1981
- 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 -2396
- data/spec/integration/prepared_statement_test.rb +0 -405
- data/spec/integration/schema_test.rb +0 -889
- data/spec/integration/spec_helper.rb +0 -65
- 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 -4
- data/spec/spec_config.rb +0 -12
@@ -1,293 +0,0 @@
|
|
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).
|
@@ -1,222 +0,0 @@
|
|
1
|
-
= Forward Compatibility
|
2
|
-
|
3
|
-
Sequel 4.49.0 will be the last minor release of Sequel 4. While the
|
4
|
-
vast majority of backwards incompatible changes in Sequel 5 have
|
5
|
-
deprecation warnings in 4.49.0, there are a few changes that do
|
6
|
-
not. Here is a brief list of changes coming in Sequel 5 that
|
7
|
-
do not have deprecation warnings (note that this list may not be
|
8
|
-
exhaustive):
|
9
|
-
|
10
|
-
* The {before,after,around}_validation hooks will always be called
|
11
|
-
when saving, even if the validate: false option is used. This
|
12
|
-
will allow you to use the before_validation hook to make changes
|
13
|
-
to the model instance that are required before validation and
|
14
|
-
before saving even if not validating. Currently, you would have
|
15
|
-
to use both a before_save and before_validation hook, which would
|
16
|
-
both be run on normal instance saving.
|
17
|
-
|
18
|
-
* Getting values for newly created model instances after insertion
|
19
|
-
now happens before after_create is called, instead of after.
|
20
|
-
This behavior is currently available via the before_after_save
|
21
|
-
plugin, and and will become the default behavior.
|
22
|
-
|
23
|
-
* Sequel will now immediately attempt to the connect to the database
|
24
|
-
when a Database instance is created, in order to fail fast. This
|
25
|
-
behavior is currently available via the test: true option, and
|
26
|
-
will become the default behavior. You can force not testing the
|
27
|
-
connection by using the test: false option.
|
28
|
-
|
29
|
-
* The validates_unique method in the validation_helpers plugin will
|
30
|
-
now only check for uniqueness by default if the record is new or
|
31
|
-
one of the related columns has been modified by default. You can
|
32
|
-
use only_if_modified: false to force the uniqueness check.
|
33
|
-
|
34
|
-
* Database schema methods and schema generator methods will return
|
35
|
-
nil instead of some internal value.
|
36
|
-
|
37
|
-
* Many cases where Sequel uses send internally will be switched to
|
38
|
-
public_send so they only call public methods, unless it is
|
39
|
-
specifically expected that they will call private methods.
|
40
|
-
|
41
|
-
* Model association hooks will be nil instead of empty arrays by
|
42
|
-
default. They will only be arrays if that hook has been set for
|
43
|
-
the association.
|
44
|
-
|
45
|
-
* Internal uses of instance_eval with a block will be changed to
|
46
|
-
instance_exec. This will allow them to be used with lambdas that
|
47
|
-
take no arguments. Unfortunately, it will break the case where a
|
48
|
-
lambda is currently used that takes one argument.
|
49
|
-
|
50
|
-
* Most internal constants will be frozen, unless there is a
|
51
|
-
requirement that they be modified at runtime.
|
52
|
-
|
53
|
-
* The @was_new instance variable set during model instance creation
|
54
|
-
will be removed.
|
55
|
-
|
56
|
-
= Deprecated Features
|
57
|
-
|
58
|
-
* Model association before callbacks returning false canceling the
|
59
|
-
action is now deprecated. The callbacks should now call
|
60
|
-
Model#cancel_action to cancel the action.
|
61
|
-
|
62
|
-
* Loading plugins by requiring them via sequel_#{plugin} is now
|
63
|
-
deprecated. Affected plugins should move the plugin file so it can
|
64
|
-
be required via sequel/plugins/#{plugin}.
|
65
|
-
|
66
|
-
* In the mock adapter, Dataset#autoid=, #_fetch=, and #numrows= are
|
67
|
-
now deprecated. They modified the dataset itself, which would not
|
68
|
-
work for frozen datasets. Dataset#with_autoid, #with_fetch,
|
69
|
-
and #with_numrows should be used instead, which return a modified
|
70
|
-
copy.
|
71
|
-
|
72
|
-
* In the null_dataset extension, Dataset#nullify! is now deprecated.
|
73
|
-
It modified the dataset itself, which would not work for frozen
|
74
|
-
datasets. Dataset#nullify should be used instead, which returns a
|
75
|
-
modified copy.
|
76
|
-
|
77
|
-
* Modifying the validation_helpers plugin DEFAULT_OPTIONS hash is now
|
78
|
-
deprecated. Any change to the default options should be done by
|
79
|
-
overriding the Model#default_validation_helpers_options private
|
80
|
-
method.
|
81
|
-
|
82
|
-
* Modifying ConnectionPool::CONNECTION_POOL_MAP to support an
|
83
|
-
external connection pool is now deprecated. To use an external
|
84
|
-
connection pool, pass the pool class via the :pool_class
|
85
|
-
Database option. Additionally, using a :pool_class option that
|
86
|
-
is not a class or a symbol for one of the default connection
|
87
|
-
pools is also deprecated.
|
88
|
-
|
89
|
-
* ConnectionPool#created_count is now deprecated. This method was
|
90
|
-
misnamed, as it was in alias to size, but the name implies it
|
91
|
-
returns how many connections have been created, as opposed to how
|
92
|
-
many connections are still in the pool.
|
93
|
-
|
94
|
-
* Sequel::SQL::Function#f is now deprecated, switch to using #name
|
95
|
-
instead.
|
96
|
-
|
97
|
-
* Sequel::SQL::AliasedExpression#aliaz is now deprecated, switch
|
98
|
-
to using #alias instead.
|
99
|
-
|
100
|
-
* The :eager_loading_predicate_key association option and
|
101
|
-
eager_loading_predicate_key association method are now deprecated.
|
102
|
-
The predicate_key option and method should be used instead.
|
103
|
-
|
104
|
-
* The cti_columns class method in the class_table_inheritance plugin
|
105
|
-
is now deprecated.
|
106
|
-
|
107
|
-
* The serialized_columns class method in the serialization plugin
|
108
|
-
is now deprecated.
|
109
|
-
|
110
|
-
* Having ds.join_table(:table, :cross, :a=>:b) be treated as an
|
111
|
-
inner join on MySQL is now deprecated.
|
112
|
-
|
113
|
-
* Sequel::IBMDB::Connection#prepared_statements= in the ibmdb
|
114
|
-
adapter is now deprecated.
|
115
|
-
|
116
|
-
* Additional internal constants are now deprecated.
|
117
|
-
|
118
|
-
= New Features
|
119
|
-
|
120
|
-
* Database#extend_datasets and Database#with_extend if given a block
|
121
|
-
now use a Dataset::DatasetModule instance instead of a plain Module
|
122
|
-
instance. Dataset::DatasetModule is a subset of
|
123
|
-
Model::DatasetModule, and allows for the easy creation of dataset
|
124
|
-
methods that can perform caching for frozen datasets.
|
125
|
-
|
126
|
-
Defining dataset methods is done by calling methods with the same
|
127
|
-
name as dataset methods inside the extend_datasets or with_extend
|
128
|
-
block:
|
129
|
-
|
130
|
-
DB.extend_datasets do
|
131
|
-
order :by_id, :id
|
132
|
-
select :with_id_and_name, :id, :name
|
133
|
-
where :active, :active
|
134
|
-
end
|
135
|
-
|
136
|
-
This is equivalent to:
|
137
|
-
|
138
|
-
DB.extend_datasets do
|
139
|
-
def by_id
|
140
|
-
order(:id)
|
141
|
-
end
|
142
|
-
|
143
|
-
def with_id_and_name
|
144
|
-
select(:id, :name)
|
145
|
-
end
|
146
|
-
|
147
|
-
def active
|
148
|
-
where(:active)
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
Except that for frozen datasets (the default in Sequel 5),
|
153
|
-
code like:
|
154
|
-
|
155
|
-
100.times do
|
156
|
-
DB[:table].active.with_id_and_name.by_id
|
157
|
-
end
|
158
|
-
|
159
|
-
will only allocate 4 datasets instead of 400, and can be
|
160
|
-
3-4 times faster.
|
161
|
-
|
162
|
-
* Dataset#where_{all,each,single_value} are now core dataset methods
|
163
|
-
instead of just model dataset methods. These methods allow you to
|
164
|
-
replace:
|
165
|
-
|
166
|
-
dataset.where(cond).all
|
167
|
-
dataset.where(cond).each{}
|
168
|
-
dataset.where(cond).single_value
|
169
|
-
|
170
|
-
with:
|
171
|
-
|
172
|
-
dataset.where_all(cond)
|
173
|
-
dataset.where_each(cond){}
|
174
|
-
dataset.where_single_value(cond)
|
175
|
-
|
176
|
-
The advantage of #where_{all,each,single_value} is that frozen
|
177
|
-
datasets can take potentially advantage of caching and perform
|
178
|
-
70%-300% faster.
|
179
|
-
|
180
|
-
* Oracle 12 native limit/offset support is now supported, which
|
181
|
-
in particular makes offset queries much faster as they don't
|
182
|
-
have to be emulated using the row_number window function.
|
183
|
-
|
184
|
-
* Dataset#paged_each in the mysql2 adapter now supports a
|
185
|
-
:stream=>false option to disable streaming and fallback to
|
186
|
-
the default implementation.
|
187
|
-
|
188
|
-
* The postgres adapter now supports the :sslrootcert option
|
189
|
-
directly, you no longer need to specify it using the
|
190
|
-
:driver_options hash.
|
191
|
-
|
192
|
-
* The single_table_inheritance plugin now supports an
|
193
|
-
sti_class_from_sti_key method for getting the appropriate
|
194
|
-
subclass for the given key.
|
195
|
-
|
196
|
-
= Other Improvements
|
197
|
-
|
198
|
-
* Using the dataset_associations plugin with a many_through_many
|
199
|
-
association that joins to the same table multiple times is now
|
200
|
-
handled correctly by automatically aliasing the table
|
201
|
-
appropriately.
|
202
|
-
|
203
|
-
* On Ruby 2.1+, Sequel::Error#cause will use wrapped_exception
|
204
|
-
if one is set. This doesn't result in different behavior in
|
205
|
-
most cases, but it can in cases where nested exception handling
|
206
|
-
is done and Sequel tries to raise the most relevant exception.
|
207
|
-
|
208
|
-
* Using the composition plugin with the :mapping option now works
|
209
|
-
correctly when using the column_conflicts plugin.
|
210
|
-
|
211
|
-
* The validation_helpers plugin's validates_max_length method
|
212
|
-
now correctly gets the default :nil_message option from
|
213
|
-
the default_validation_helpers_options method instead of
|
214
|
-
looking at the plugin defaults.
|
215
|
-
|
216
|
-
* The duplicate_columns_handler extension no longer makes the
|
217
|
-
Dataset#columns= method public.
|
218
|
-
|
219
|
-
* On H2 1.4+, alter_table add_primary_key now works correctly.
|
220
|
-
|
221
|
-
* The jdbc/sqlserver adapter's datetimeoffset type handling now
|
222
|
-
works with more JDBC driver versions.
|
data/doc/release_notes/4.5.0.txt
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* An mssql_optimistic_locking plugin has been added. This is similar
|
4
|
-
to the regular optimistic_locking plugin, but instead of using an
|
5
|
-
integer lock column, it uses a timestamp/rowversion lock column.
|
6
|
-
|
7
|
-
* Database#create_table with the :temp=>true option on PostgreSQL now
|
8
|
-
supports an :on_commit option. This option can be set to :drop or
|
9
|
-
:delete_rows to either drop or empty the temporary table on
|
10
|
-
transaction commit.
|
11
|
-
|
12
|
-
= Other Improvements
|
13
|
-
|
14
|
-
* Dataset#insert no longer errors on PostgreSQL if the related table
|
15
|
-
is a placeholder literal string.
|
16
|
-
|
17
|
-
* Unique constraints are now copied when emulating alter_table
|
18
|
-
operations on SQLite.
|
19
|
-
|
20
|
-
* Clob column values are no longer returned as SQL::Blob instances
|
21
|
-
by the db2 and ibmdb adapters unless use_clob_as_blob is true.
|
22
|
-
|
23
|
-
* SQL::Blob objects now work correctly as prepared statement
|
24
|
-
arguments in the jdbc/db2 adapter if use_clob_as_blob is false.
|
25
|
-
|
26
|
-
= Backwards Compatibility
|
27
|
-
|
28
|
-
* The Model.primary_key array for models with composite keys is now
|
29
|
-
frozen.
|
30
|
-
|
31
|
-
* On DB2, use_clob_as_blob now defaults to false instead of true.
|
32
|
-
|
33
|
-
* Sequel no longer uses RubyForge. The Sequel website is now located
|
34
|
-
at http://sequel.jeremyevans.net.
|
data/doc/release_notes/4.6.0.txt
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Database#call_mssql_sproc is now available for calling
|
4
|
-
stored procedures on Microsoft SQL Server, including the use
|
5
|
-
of output parameters.
|
6
|
-
|
7
|
-
* The Database#{commit,rollback}_prepared_transaction methods now
|
8
|
-
support a :server option for the server on which to operate.
|
9
|
-
|
10
|
-
= Other Improvements
|
11
|
-
|
12
|
-
* On Microsoft SQL Server 2012, the native OFFSET/FETCH support
|
13
|
-
is now used for offsets, instead of emulating support via the
|
14
|
-
ROW_NUMBER window function.
|
15
|
-
|
16
|
-
* Eager loading is now skipped when doing eager(...).naked.all on
|
17
|
-
a model dataset, instead of raising an error. This can fix issues
|
18
|
-
when the eager_each plugin is used.
|
19
|
-
|
20
|
-
* A couple additional disconnection errors are now detected in the
|
21
|
-
jdbc/postgresql adapter.
|
22
|
-
|
23
|
-
* The tinytds adapter now handles returning rows when the fields
|
24
|
-
are not immediately available.
|
25
|
-
|
26
|
-
* RuntimeErrors raised by oci8 are now handled correctly in the
|
27
|
-
oracle adapter.
|
28
|
-
|
29
|
-
* Sequel's specs now work with RSpec 3, while still running
|
30
|
-
correctly on RSpec 1.3 and 2.
|
data/doc/release_notes/4.7.0.txt
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Alternatives for the more complex virtual row method calls have
|
4
|
-
been added:
|
5
|
-
|
6
|
-
# Window Functions using SQL::Function#over
|
7
|
-
# before: select{sum(:over, :args=>:col1, :partition=>:col2){}}
|
8
|
-
select{sum(:col1).over(:partition=>:col2)}
|
9
|
-
|
10
|
-
# count(*) using SQL::Function#*
|
11
|
-
# before: select{count(:*){}}
|
12
|
-
select{count{}.*}
|
13
|
-
|
14
|
-
# count(distinct col) using SQL::Function#distinct
|
15
|
-
# before: select{count(:distinct, :col){}}
|
16
|
-
select{count(:col).distinct}
|
17
|
-
|
18
|
-
Additionally, schema qualified functions are now supported via
|
19
|
-
SQL::QualifiedIdentifier#function, and quoted functions are now
|
20
|
-
supported via SQL::Identifier#function on some databases:
|
21
|
-
|
22
|
-
# "func"("col")
|
23
|
-
select{func.function(:col)}
|
24
|
-
|
25
|
-
# "schema"."func"("col1")
|
26
|
-
select{schema__func.function(:col1)}
|
27
|
-
|
28
|
-
If the database does not support quoting function names, then
|
29
|
-
Sequel will not quote them.
|
30
|
-
|
31
|
-
* An update_or_create plugin has been added, for updating a matching
|
32
|
-
object if one exists, or creating an object if it does not. For
|
33
|
-
example, the following code will update the number of copies sold
|
34
|
-
for album with the name 'Hello', or it will create an album with
|
35
|
-
the name 'Hello' and 1000 number of copies sold:
|
36
|
-
|
37
|
-
Album.plugin :update_or_create
|
38
|
-
Album.update_or_create(:name=>'Hello') do |album|
|
39
|
-
album.num_copies_sold = 1000
|
40
|
-
end
|
41
|
-
|
42
|
-
You can also use a shorter form of this, with two hashes:
|
43
|
-
|
44
|
-
Album.update_or_create({:name=>'Hello'}, {:num_copies_sold=>1000})
|
45
|
-
|
46
|
-
This plugin also adds a method named find_or_new, which does the
|
47
|
-
same thing as update_or_create, except it doesn't persist any
|
48
|
-
changes.
|
49
|
-
|
50
|
-
* A :raise_on_save_failure option has been added for one_to_many,
|
51
|
-
pg_array_to_many, and many_to_pg_array associations. This mirrors
|
52
|
-
the Model.raise_on_save_failure setting, and if set to false, it
|
53
|
-
will make the add/remove methods return nil instead of raising
|
54
|
-
an error if there is a validation/hook error when saving the
|
55
|
-
associated record.
|
56
|
-
|
57
|
-
* The validates_unique validation in validation_helpers now supports a
|
58
|
-
:dataset option to provide the base dataset to use to check
|
59
|
-
uniqueness. This is useful when the model itself uses a filtered
|
60
|
-
dataset, but the unique index in the database is on an unfiltered
|
61
|
-
dataset.
|
62
|
-
|
63
|
-
The auto_validations plugin uses this option to ensure that unique
|
64
|
-
validations are setup correctly in subclasses using single table
|
65
|
-
inheritance.
|
66
|
-
|
67
|
-
= Other Improvements
|
68
|
-
|
69
|
-
* Sequel now automatically rolls back transactions in killed threads
|
70
|
-
on ruby 2.0+. It is still impossible to do so on ruby 1.9.
|
71
|
-
|
72
|
-
* In the instance_hooks plugin, validation instance hooks are now
|
73
|
-
not cleared until after a successful save.
|
74
|
-
|
75
|
-
* Composite unique key constraint violations are now recognized
|
76
|
-
and raised as Sequel::UniqueConstraintViolation on SQLite.
|
77
|
-
|
78
|
-
* Primary key unique constraint violations are now recognized and
|
79
|
-
and raised as Sequel::UniqueConstraintViolation on Microsoft
|
80
|
-
SQL Server and SQLAnywhere.
|
81
|
-
|
82
|
-
* If an exception occurs when using a cursor in the postgres adapter,
|
83
|
-
and an exception also occurs when closing the cursor when cleaning
|
84
|
-
up, the initial exception is now raised.
|
85
|
-
|
86
|
-
* You can now get tables in a specific schema in the jdbc adapter
|
87
|
-
using the :schema option to Database#tables. This was already
|
88
|
-
supported in most jdbc subadapters because they implement #tables
|
89
|
-
using database specific code instead of looking at the JDBC
|
90
|
-
metadata, but it should now work for all jdbc subadapters.
|
91
|
-
|
92
|
-
* Sequel::SQLTime#to_s is now defined and returns a string in
|
93
|
-
HH:MM:SS format (leaving off the date).
|
94
|
-
|
95
|
-
= Backwards Compatibility
|
96
|
-
|
97
|
-
* The odbc adapter's :driver option is no longer deprecated, as reports
|
98
|
-
were received that it still works.
|
99
|
-
|
100
|
-
* If you were re-adding instance validation hooks using instance_hooks
|
101
|
-
after a save failure, and then retrying the save, you may now end up
|
102
|
-
with duplicate validations. You no longer need to re-add validation
|
103
|
-
hooks unless the object was saved successfully.
|