sequel 5.20.0 → 5.49.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 +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.
|