sequel 4.36.0 → 5.61.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 +5 -5
- data/CHANGELOG +548 -5749
- data/MIT-LICENSE +1 -1
- data/README.rdoc +265 -159
- data/bin/sequel +34 -12
- data/doc/advanced_associations.rdoc +228 -187
- data/doc/association_basics.rdoc +281 -291
- data/doc/bin_sequel.rdoc +5 -3
- data/doc/cheat_sheet.rdoc +86 -51
- data/doc/code_order.rdoc +25 -19
- data/doc/core_extensions.rdoc +104 -63
- data/doc/dataset_basics.rdoc +12 -21
- data/doc/dataset_filtering.rdoc +99 -86
- data/doc/extensions.rdoc +3 -10
- data/doc/fork_safety.rdoc +84 -0
- data/doc/mass_assignment.rdoc +74 -31
- data/doc/migration.rdoc +59 -51
- data/doc/model_dataset_method_design.rdoc +129 -0
- data/doc/model_hooks.rdoc +15 -25
- data/doc/model_plugins.rdoc +12 -12
- data/doc/mssql_stored_procedures.rdoc +3 -3
- data/doc/object_model.rdoc +58 -68
- data/doc/opening_databases.rdoc +85 -95
- data/doc/postgresql.rdoc +263 -38
- data/doc/prepared_statements.rdoc +29 -24
- data/doc/querying.rdoc +189 -167
- data/doc/reflection.rdoc +5 -6
- data/doc/release_notes/5.0.0.txt +159 -0
- data/doc/release_notes/5.1.0.txt +31 -0
- data/doc/release_notes/5.10.0.txt +84 -0
- data/doc/release_notes/5.11.0.txt +83 -0
- data/doc/release_notes/5.12.0.txt +141 -0
- data/doc/release_notes/5.13.0.txt +27 -0
- data/doc/release_notes/5.14.0.txt +63 -0
- data/doc/release_notes/5.15.0.txt +39 -0
- data/doc/release_notes/5.16.0.txt +110 -0
- data/doc/release_notes/5.17.0.txt +31 -0
- data/doc/release_notes/5.18.0.txt +69 -0
- data/doc/release_notes/5.19.0.txt +28 -0
- data/doc/release_notes/5.2.0.txt +33 -0
- data/doc/release_notes/5.20.0.txt +89 -0
- 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.3.0.txt +121 -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.4.0.txt +80 -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/release_notes/5.5.0.txt +61 -0
- data/doc/release_notes/5.50.0.txt +78 -0
- data/doc/release_notes/5.51.0.txt +47 -0
- data/doc/release_notes/5.52.0.txt +87 -0
- data/doc/release_notes/5.53.0.txt +23 -0
- data/doc/release_notes/5.54.0.txt +27 -0
- data/doc/release_notes/5.55.0.txt +21 -0
- data/doc/release_notes/5.56.0.txt +51 -0
- data/doc/release_notes/5.57.0.txt +23 -0
- data/doc/release_notes/5.58.0.txt +31 -0
- data/doc/release_notes/5.59.0.txt +73 -0
- data/doc/release_notes/5.6.0.txt +31 -0
- data/doc/release_notes/5.60.0.txt +22 -0
- data/doc/release_notes/5.61.0.txt +43 -0
- data/doc/release_notes/5.7.0.txt +108 -0
- data/doc/release_notes/5.8.0.txt +170 -0
- data/doc/release_notes/5.9.0.txt +99 -0
- data/doc/schema_modification.rdoc +95 -75
- data/doc/security.rdoc +109 -80
- data/doc/sharding.rdoc +74 -47
- data/doc/sql.rdoc +147 -122
- data/doc/testing.rdoc +43 -20
- data/doc/thread_safety.rdoc +2 -4
- data/doc/transactions.rdoc +97 -18
- data/doc/validations.rdoc +52 -50
- data/doc/virtual_rows.rdoc +90 -109
- data/lib/sequel/adapters/ado/access.rb +15 -17
- data/lib/sequel/adapters/ado/mssql.rb +6 -15
- data/lib/sequel/adapters/ado.rb +150 -20
- data/lib/sequel/adapters/amalgalite.rb +11 -23
- data/lib/sequel/adapters/ibmdb.rb +47 -55
- data/lib/sequel/adapters/jdbc/db2.rb +29 -39
- data/lib/sequel/adapters/jdbc/derby.rb +58 -54
- data/lib/sequel/adapters/jdbc/h2.rb +93 -35
- data/lib/sequel/adapters/jdbc/hsqldb.rb +24 -31
- data/lib/sequel/adapters/jdbc/jtds.rb +2 -10
- data/lib/sequel/adapters/jdbc/mssql.rb +3 -11
- data/lib/sequel/adapters/jdbc/mysql.rb +17 -20
- data/lib/sequel/adapters/jdbc/oracle.rb +22 -18
- data/lib/sequel/adapters/jdbc/postgresql.rb +69 -71
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +11 -23
- data/lib/sequel/adapters/jdbc/sqlite.rb +47 -11
- data/lib/sequel/adapters/jdbc/sqlserver.rb +34 -9
- data/lib/sequel/adapters/jdbc/transactions.rb +22 -38
- data/lib/sequel/adapters/jdbc.rb +145 -130
- data/lib/sequel/adapters/mock.rb +100 -111
- data/lib/sequel/adapters/mysql.rb +114 -122
- data/lib/sequel/adapters/mysql2.rb +147 -63
- data/lib/sequel/adapters/odbc/db2.rb +1 -1
- data/lib/sequel/adapters/odbc/mssql.rb +8 -14
- data/lib/sequel/adapters/odbc/oracle.rb +11 -0
- data/lib/sequel/adapters/odbc.rb +20 -25
- data/lib/sequel/adapters/oracle.rb +50 -56
- data/lib/sequel/adapters/postgres.rb +305 -327
- data/lib/sequel/adapters/postgresql.rb +1 -1
- data/lib/sequel/adapters/shared/access.rb +74 -78
- data/lib/sequel/adapters/shared/db2.rb +118 -71
- data/lib/sequel/adapters/shared/mssql.rb +301 -220
- data/lib/sequel/adapters/shared/mysql.rb +299 -217
- data/lib/sequel/adapters/shared/oracle.rb +226 -65
- data/lib/sequel/adapters/shared/postgres.rb +935 -395
- data/lib/sequel/adapters/shared/sqlanywhere.rb +105 -126
- data/lib/sequel/adapters/shared/sqlite.rb +447 -173
- data/lib/sequel/adapters/sqlanywhere.rb +48 -35
- data/lib/sequel/adapters/sqlite.rb +156 -111
- data/lib/sequel/adapters/tinytds.rb +30 -38
- data/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
- data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +3 -6
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +2 -2
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +87 -0
- data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +56 -0
- data/lib/sequel/adapters/utils/replace.rb +1 -4
- data/lib/sequel/adapters/utils/stored_procedures.rb +7 -22
- data/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
- data/lib/sequel/ast_transformer.rb +17 -89
- data/lib/sequel/connection_pool/sharded_single.rb +18 -15
- data/lib/sequel/connection_pool/sharded_threaded.rb +130 -111
- data/lib/sequel/connection_pool/single.rb +18 -13
- data/lib/sequel/connection_pool/threaded.rb +121 -120
- data/lib/sequel/connection_pool.rb +48 -29
- data/lib/sequel/core.rb +351 -301
- data/lib/sequel/database/connecting.rb +69 -57
- data/lib/sequel/database/dataset.rb +13 -5
- data/lib/sequel/database/dataset_defaults.rb +18 -102
- data/lib/sequel/database/features.rb +18 -4
- data/lib/sequel/database/logging.rb +12 -11
- data/lib/sequel/database/misc.rb +180 -122
- data/lib/sequel/database/query.rb +47 -27
- data/lib/sequel/database/schema_generator.rb +178 -84
- data/lib/sequel/database/schema_methods.rb +172 -97
- data/lib/sequel/database/transactions.rb +205 -44
- data/lib/sequel/database.rb +17 -2
- data/lib/sequel/dataset/actions.rb +339 -155
- data/lib/sequel/dataset/dataset_module.rb +46 -0
- data/lib/sequel/dataset/features.rb +90 -35
- data/lib/sequel/dataset/graph.rb +80 -58
- data/lib/sequel/dataset/misc.rb +137 -47
- data/lib/sequel/dataset/placeholder_literalizer.rb +63 -25
- data/lib/sequel/dataset/prepared_statements.rb +188 -85
- data/lib/sequel/dataset/query.rb +530 -222
- data/lib/sequel/dataset/sql.rb +590 -368
- data/lib/sequel/dataset.rb +26 -16
- data/lib/sequel/deprecated.rb +12 -2
- data/lib/sequel/exceptions.rb +46 -16
- data/lib/sequel/extensions/_model_constraint_validations.rb +16 -0
- data/lib/sequel/extensions/_model_pg_row.rb +43 -0
- data/lib/sequel/extensions/_pretty_table.rb +2 -5
- data/lib/sequel/extensions/any_not_empty.rb +45 -0
- data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
- data/lib/sequel/extensions/async_thread_pool.rb +438 -0
- data/lib/sequel/extensions/auto_literal_strings.rb +74 -0
- data/lib/sequel/extensions/blank.rb +8 -0
- data/lib/sequel/extensions/caller_logging.rb +79 -0
- data/lib/sequel/extensions/columns_introspection.rb +4 -3
- data/lib/sequel/extensions/connection_expiration.rb +20 -10
- data/lib/sequel/extensions/connection_validator.rb +11 -10
- data/lib/sequel/extensions/constant_sql_override.rb +65 -0
- data/lib/sequel/extensions/constraint_validations.rb +62 -39
- data/lib/sequel/extensions/core_extensions.rb +42 -48
- data/lib/sequel/extensions/core_refinements.rb +80 -59
- data/lib/sequel/extensions/current_datetime_timestamp.rb +1 -4
- data/lib/sequel/extensions/date_arithmetic.rb +98 -39
- data/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
- data/lib/sequel/extensions/datetime_parse_to_time.rb +41 -0
- data/lib/sequel/extensions/duplicate_columns_handler.rb +21 -14
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
- data/lib/sequel/extensions/escaped_like.rb +100 -0
- data/lib/sequel/extensions/eval_inspect.rb +12 -15
- data/lib/sequel/extensions/exclude_or_null.rb +68 -0
- data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
- data/lib/sequel/extensions/freeze_datasets.rb +3 -0
- data/lib/sequel/extensions/from_block.rb +1 -34
- data/lib/sequel/extensions/graph_each.rb +4 -4
- data/lib/sequel/extensions/identifier_mangling.rb +180 -0
- data/lib/sequel/extensions/implicit_subquery.rb +48 -0
- data/lib/sequel/extensions/index_caching.rb +109 -0
- data/lib/sequel/extensions/inflector.rb +13 -5
- data/lib/sequel/extensions/integer64.rb +32 -0
- data/lib/sequel/extensions/is_distinct_from.rb +141 -0
- data/lib/sequel/extensions/looser_typecasting.rb +17 -8
- data/lib/sequel/extensions/migration.rb +119 -78
- data/lib/sequel/extensions/named_timezones.rb +88 -23
- data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -82
- data/lib/sequel/extensions/null_dataset.rb +8 -8
- data/lib/sequel/extensions/pagination.rb +32 -29
- data/lib/sequel/extensions/pg_array.rb +221 -287
- data/lib/sequel/extensions/pg_array_ops.rb +17 -9
- data/lib/sequel/extensions/pg_enum.rb +63 -23
- data/lib/sequel/extensions/pg_extended_date_support.rb +241 -0
- data/lib/sequel/extensions/pg_hstore.rb +45 -54
- data/lib/sequel/extensions/pg_hstore_ops.rb +58 -6
- data/lib/sequel/extensions/pg_inet.rb +31 -12
- data/lib/sequel/extensions/pg_inet_ops.rb +2 -2
- data/lib/sequel/extensions/pg_interval.rb +56 -29
- data/lib/sequel/extensions/pg_json.rb +417 -140
- data/lib/sequel/extensions/pg_json_ops.rb +270 -18
- data/lib/sequel/extensions/pg_loose_count.rb +4 -2
- data/lib/sequel/extensions/pg_multirange.rb +372 -0
- data/lib/sequel/extensions/pg_range.rb +131 -191
- data/lib/sequel/extensions/pg_range_ops.rb +42 -13
- data/lib/sequel/extensions/pg_row.rb +48 -81
- data/lib/sequel/extensions/pg_row_ops.rb +33 -14
- data/lib/sequel/extensions/pg_static_cache_updater.rb +2 -2
- data/lib/sequel/extensions/pg_timestamptz.rb +28 -0
- data/lib/sequel/extensions/query.rb +9 -7
- data/lib/sequel/extensions/round_timestamps.rb +0 -6
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/s.rb +60 -0
- data/lib/sequel/extensions/schema_caching.rb +10 -1
- data/lib/sequel/extensions/schema_dumper.rb +71 -48
- data/lib/sequel/extensions/select_remove.rb +4 -4
- data/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
- data/lib/sequel/extensions/server_block.rb +51 -27
- data/lib/sequel/extensions/split_array_nil.rb +4 -4
- data/lib/sequel/extensions/sql_comments.rb +119 -7
- data/lib/sequel/extensions/sql_expr.rb +2 -1
- data/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
- data/lib/sequel/extensions/sqlite_json_ops.rb +255 -0
- data/lib/sequel/extensions/string_agg.rb +11 -8
- data/lib/sequel/extensions/string_date_time.rb +19 -23
- data/lib/sequel/extensions/symbol_aref.rb +55 -0
- data/lib/sequel/extensions/symbol_aref_refinement.rb +43 -0
- data/lib/sequel/extensions/symbol_as.rb +23 -0
- data/lib/sequel/extensions/symbol_as_refinement.rb +37 -0
- data/lib/sequel/extensions/synchronize_sql.rb +45 -0
- data/lib/sequel/extensions/to_dot.rb +10 -4
- data/lib/sequel/extensions/virtual_row_method_block.rb +44 -0
- data/lib/sequel/model/associations.rb +1006 -284
- data/lib/sequel/model/base.rb +560 -805
- data/lib/sequel/model/dataset_module.rb +11 -10
- data/lib/sequel/model/default_inflections.rb +1 -1
- data/lib/sequel/model/errors.rb +10 -3
- data/lib/sequel/model/exceptions.rb +8 -10
- data/lib/sequel/model/inflections.rb +7 -20
- data/lib/sequel/model/plugins.rb +114 -0
- data/lib/sequel/model.rb +32 -82
- data/lib/sequel/plugins/active_model.rb +30 -14
- data/lib/sequel/plugins/after_initialize.rb +1 -1
- data/lib/sequel/plugins/association_dependencies.rb +25 -18
- 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 +147 -70
- data/lib/sequel/plugins/association_proxies.rb +33 -9
- data/lib/sequel/plugins/async_thread_pool.rb +39 -0
- data/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
- data/lib/sequel/plugins/auto_validations.rb +95 -28
- data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
- data/lib/sequel/plugins/before_after_save.rb +0 -42
- data/lib/sequel/plugins/blacklist_security.rb +21 -12
- data/lib/sequel/plugins/boolean_readers.rb +5 -5
- data/lib/sequel/plugins/boolean_subsets.rb +13 -8
- data/lib/sequel/plugins/caching.rb +25 -16
- data/lib/sequel/plugins/class_table_inheritance.rb +179 -100
- data/lib/sequel/plugins/column_conflicts.rb +16 -3
- data/lib/sequel/plugins/column_encryption.rb +728 -0
- data/lib/sequel/plugins/column_select.rb +7 -5
- data/lib/sequel/plugins/columns_updated.rb +42 -0
- data/lib/sequel/plugins/composition.rb +42 -26
- data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
- data/lib/sequel/plugins/constraint_validations.rb +20 -14
- data/lib/sequel/plugins/csv_serializer.rb +56 -35
- data/lib/sequel/plugins/dataset_associations.rb +40 -17
- data/lib/sequel/plugins/def_dataset_method.rb +90 -0
- data/lib/sequel/plugins/defaults_setter.rb +65 -10
- data/lib/sequel/plugins/delay_add_association.rb +1 -1
- data/lib/sequel/plugins/dirty.rb +62 -24
- data/lib/sequel/plugins/eager_each.rb +3 -3
- data/lib/sequel/plugins/eager_graph_eager.rb +139 -0
- data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
- data/lib/sequel/plugins/enum.rb +124 -0
- data/lib/sequel/plugins/error_splitter.rb +17 -12
- data/lib/sequel/plugins/finder.rb +246 -0
- data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
- data/lib/sequel/plugins/force_encoding.rb +7 -12
- data/lib/sequel/plugins/hook_class_methods.rb +37 -54
- data/lib/sequel/plugins/input_transformer.rb +18 -10
- data/lib/sequel/plugins/insert_conflict.rb +76 -0
- data/lib/sequel/plugins/insert_returning_select.rb +2 -2
- data/lib/sequel/plugins/instance_filters.rb +10 -8
- data/lib/sequel/plugins/instance_hooks.rb +34 -17
- data/lib/sequel/plugins/instance_specific_default.rb +113 -0
- data/lib/sequel/plugins/inverted_subsets.rb +22 -13
- data/lib/sequel/plugins/json_serializer.rb +124 -64
- data/lib/sequel/plugins/lazy_attributes.rb +21 -14
- data/lib/sequel/plugins/list.rb +35 -21
- data/lib/sequel/plugins/many_through_many.rb +134 -21
- data/lib/sequel/plugins/modification_detection.rb +15 -5
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +6 -5
- data/lib/sequel/plugins/nested_attributes.rb +61 -31
- data/lib/sequel/plugins/optimistic_locking.rb +3 -3
- data/lib/sequel/plugins/pg_array_associations.rb +103 -53
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +350 -0
- data/lib/sequel/plugins/pg_row.rb +5 -51
- data/lib/sequel/plugins/prepared_statements.rb +60 -72
- data/lib/sequel/plugins/prepared_statements_safe.rb +9 -4
- data/lib/sequel/plugins/rcte_tree.rb +68 -82
- data/lib/sequel/plugins/require_valid_schema.rb +67 -0
- data/lib/sequel/plugins/serialization.rb +43 -46
- data/lib/sequel/plugins/serialization_modification_detection.rb +3 -2
- data/lib/sequel/plugins/sharding.rb +15 -10
- data/lib/sequel/plugins/single_table_inheritance.rb +67 -28
- data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/split_values.rb +11 -6
- data/lib/sequel/plugins/sql_comments.rb +189 -0
- data/lib/sequel/plugins/static_cache.rb +77 -53
- data/lib/sequel/plugins/static_cache_cache.rb +53 -0
- data/lib/sequel/plugins/string_stripper.rb +3 -3
- data/lib/sequel/plugins/subclasses.rb +43 -10
- data/lib/sequel/plugins/subset_conditions.rb +15 -5
- data/lib/sequel/plugins/table_select.rb +2 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +96 -12
- data/lib/sequel/plugins/throw_failures.rb +110 -0
- data/lib/sequel/plugins/timestamps.rb +20 -8
- data/lib/sequel/plugins/touch.rb +19 -8
- data/lib/sequel/plugins/tree.rb +62 -32
- data/lib/sequel/plugins/typecast_on_load.rb +12 -4
- data/lib/sequel/plugins/unlimited_update.rb +1 -7
- data/lib/sequel/plugins/unused_associations.rb +521 -0
- data/lib/sequel/plugins/update_or_create.rb +4 -4
- data/lib/sequel/plugins/update_primary_key.rb +1 -1
- data/lib/sequel/plugins/update_refresh.rb +26 -15
- data/lib/sequel/plugins/uuid.rb +7 -11
- data/lib/sequel/plugins/validate_associated.rb +18 -0
- data/lib/sequel/plugins/validation_class_methods.rb +38 -19
- data/lib/sequel/plugins/validation_contexts.rb +49 -0
- data/lib/sequel/plugins/validation_helpers.rb +57 -41
- data/lib/sequel/plugins/whitelist_security.rb +122 -0
- data/lib/sequel/plugins/xml_serializer.rb +30 -31
- data/lib/sequel/sql.rb +471 -331
- data/lib/sequel/timezones.rb +78 -47
- data/lib/sequel/version.rb +7 -2
- data/lib/sequel.rb +1 -1
- metadata +217 -521
- data/Rakefile +0 -164
- data/doc/active_record.rdoc +0 -928
- data/doc/release_notes/1.0.txt +0 -38
- data/doc/release_notes/1.1.txt +0 -143
- data/doc/release_notes/1.3.txt +0 -101
- data/doc/release_notes/1.4.0.txt +0 -53
- data/doc/release_notes/1.5.0.txt +0 -155
- data/doc/release_notes/2.0.0.txt +0 -298
- data/doc/release_notes/2.1.0.txt +0 -271
- data/doc/release_notes/2.10.0.txt +0 -328
- data/doc/release_notes/2.11.0.txt +0 -215
- data/doc/release_notes/2.12.0.txt +0 -534
- data/doc/release_notes/2.2.0.txt +0 -253
- data/doc/release_notes/2.3.0.txt +0 -88
- data/doc/release_notes/2.4.0.txt +0 -106
- data/doc/release_notes/2.5.0.txt +0 -137
- data/doc/release_notes/2.6.0.txt +0 -157
- data/doc/release_notes/2.7.0.txt +0 -166
- data/doc/release_notes/2.8.0.txt +0 -171
- data/doc/release_notes/2.9.0.txt +0 -97
- data/doc/release_notes/3.0.0.txt +0 -221
- data/doc/release_notes/3.1.0.txt +0 -406
- data/doc/release_notes/3.10.0.txt +0 -286
- data/doc/release_notes/3.11.0.txt +0 -254
- data/doc/release_notes/3.12.0.txt +0 -304
- data/doc/release_notes/3.13.0.txt +0 -210
- data/doc/release_notes/3.14.0.txt +0 -118
- data/doc/release_notes/3.15.0.txt +0 -78
- data/doc/release_notes/3.16.0.txt +0 -45
- data/doc/release_notes/3.17.0.txt +0 -58
- data/doc/release_notes/3.18.0.txt +0 -120
- data/doc/release_notes/3.19.0.txt +0 -67
- data/doc/release_notes/3.2.0.txt +0 -268
- data/doc/release_notes/3.20.0.txt +0 -41
- data/doc/release_notes/3.21.0.txt +0 -87
- data/doc/release_notes/3.22.0.txt +0 -39
- data/doc/release_notes/3.23.0.txt +0 -172
- data/doc/release_notes/3.24.0.txt +0 -420
- data/doc/release_notes/3.25.0.txt +0 -88
- data/doc/release_notes/3.26.0.txt +0 -88
- data/doc/release_notes/3.27.0.txt +0 -82
- data/doc/release_notes/3.28.0.txt +0 -304
- data/doc/release_notes/3.29.0.txt +0 -459
- data/doc/release_notes/3.3.0.txt +0 -192
- data/doc/release_notes/3.30.0.txt +0 -135
- data/doc/release_notes/3.31.0.txt +0 -146
- data/doc/release_notes/3.32.0.txt +0 -202
- data/doc/release_notes/3.33.0.txt +0 -157
- data/doc/release_notes/3.34.0.txt +0 -671
- data/doc/release_notes/3.35.0.txt +0 -144
- data/doc/release_notes/3.36.0.txt +0 -245
- data/doc/release_notes/3.37.0.txt +0 -338
- data/doc/release_notes/3.38.0.txt +0 -234
- data/doc/release_notes/3.39.0.txt +0 -237
- data/doc/release_notes/3.4.0.txt +0 -325
- data/doc/release_notes/3.40.0.txt +0 -73
- data/doc/release_notes/3.41.0.txt +0 -155
- data/doc/release_notes/3.42.0.txt +0 -74
- data/doc/release_notes/3.43.0.txt +0 -105
- data/doc/release_notes/3.44.0.txt +0 -152
- data/doc/release_notes/3.45.0.txt +0 -179
- data/doc/release_notes/3.46.0.txt +0 -122
- data/doc/release_notes/3.47.0.txt +0 -270
- data/doc/release_notes/3.48.0.txt +0 -477
- data/doc/release_notes/3.5.0.txt +0 -510
- data/doc/release_notes/3.6.0.txt +0 -366
- data/doc/release_notes/3.7.0.txt +0 -179
- data/doc/release_notes/3.8.0.txt +0 -151
- data/doc/release_notes/3.9.0.txt +0 -233
- 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.4.0.txt +0 -92
- 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/lib/sequel/adapters/cubrid.rb +0 -144
- data/lib/sequel/adapters/do/mysql.rb +0 -66
- data/lib/sequel/adapters/do/postgres.rb +0 -44
- data/lib/sequel/adapters/do/sqlite3.rb +0 -42
- data/lib/sequel/adapters/do.rb +0 -158
- data/lib/sequel/adapters/jdbc/as400.rb +0 -84
- data/lib/sequel/adapters/jdbc/cubrid.rb +0 -64
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -36
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -33
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -33
- data/lib/sequel/adapters/odbc/progress.rb +0 -10
- data/lib/sequel/adapters/shared/cubrid.rb +0 -245
- data/lib/sequel/adapters/shared/firebird.rb +0 -247
- data/lib/sequel/adapters/shared/informix.rb +0 -54
- data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +0 -152
- data/lib/sequel/adapters/shared/progress.rb +0 -40
- data/lib/sequel/adapters/swift/mysql.rb +0 -49
- data/lib/sequel/adapters/swift/postgres.rb +0 -47
- data/lib/sequel/adapters/swift/sqlite.rb +0 -49
- data/lib/sequel/adapters/swift.rb +0 -160
- data/lib/sequel/adapters/utils/pg_types.rb +0 -70
- data/lib/sequel/dataset/mutation.rb +0 -111
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -5
- data/lib/sequel/extensions/filter_having.rb +0 -63
- data/lib/sequel/extensions/hash_aliases.rb +0 -49
- data/lib/sequel/extensions/meta_def.rb +0 -35
- data/lib/sequel/extensions/query_literals.rb +0 -84
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -24
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -122
- data/lib/sequel/extensions/set_overrides.rb +0 -76
- data/lib/sequel/no_core_ext.rb +0 -3
- data/lib/sequel/plugins/association_autoreloading.rb +0 -9
- data/lib/sequel/plugins/identifier_columns.rb +0 -47
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -9
- data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -81
- data/lib/sequel/plugins/prepared_statements_associations.rb +0 -119
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -61
- data/lib/sequel/plugins/schema.rb +0 -82
- data/lib/sequel/plugins/scissors.rb +0 -35
- data/spec/adapter_spec.rb +0 -4
- data/spec/adapters/db2_spec.rb +0 -160
- data/spec/adapters/firebird_spec.rb +0 -411
- data/spec/adapters/informix_spec.rb +0 -100
- data/spec/adapters/mssql_spec.rb +0 -733
- data/spec/adapters/mysql_spec.rb +0 -1319
- data/spec/adapters/oracle_spec.rb +0 -313
- data/spec/adapters/postgres_spec.rb +0 -3790
- data/spec/adapters/spec_helper.rb +0 -49
- data/spec/adapters/sqlanywhere_spec.rb +0 -170
- data/spec/adapters/sqlite_spec.rb +0 -688
- data/spec/bin_spec.rb +0 -258
- data/spec/core/connection_pool_spec.rb +0 -1045
- data/spec/core/database_spec.rb +0 -2636
- data/spec/core/dataset_spec.rb +0 -5175
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1247
- data/spec/core/mock_adapter_spec.rb +0 -464
- data/spec/core/object_graph_spec.rb +0 -303
- data/spec/core/placeholder_literalizer_spec.rb +0 -163
- data/spec/core/schema_generator_spec.rb +0 -203
- data/spec/core/schema_spec.rb +0 -1676
- data/spec/core/spec_helper.rb +0 -34
- data/spec/core/version_spec.rb +0 -7
- data/spec/core_extensions_spec.rb +0 -699
- data/spec/core_model_spec.rb +0 -2
- data/spec/core_spec.rb +0 -1
- data/spec/extensions/accessed_columns_spec.rb +0 -51
- data/spec/extensions/active_model_spec.rb +0 -85
- data/spec/extensions/after_initialize_spec.rb +0 -24
- data/spec/extensions/arbitrary_servers_spec.rb +0 -109
- data/spec/extensions/association_dependencies_spec.rb +0 -117
- data/spec/extensions/association_pks_spec.rb +0 -405
- data/spec/extensions/association_proxies_spec.rb +0 -86
- data/spec/extensions/auto_validations_spec.rb +0 -192
- data/spec/extensions/before_after_save_spec.rb +0 -40
- data/spec/extensions/blacklist_security_spec.rb +0 -88
- 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 -270
- data/spec/extensions/class_table_inheritance_spec.rb +0 -444
- data/spec/extensions/column_conflicts_spec.rb +0 -60
- data/spec/extensions/column_select_spec.rb +0 -108
- data/spec/extensions/columns_introspection_spec.rb +0 -91
- data/spec/extensions/composition_spec.rb +0 -242
- data/spec/extensions/connection_expiration_spec.rb +0 -121
- data/spec/extensions/connection_validator_spec.rb +0 -127
- data/spec/extensions/constraint_validations_plugin_spec.rb +0 -288
- data/spec/extensions/constraint_validations_spec.rb +0 -389
- data/spec/extensions/core_refinements_spec.rb +0 -519
- data/spec/extensions/csv_serializer_spec.rb +0 -180
- data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
- data/spec/extensions/dataset_associations_spec.rb +0 -343
- data/spec/extensions/dataset_source_alias_spec.rb +0 -51
- data/spec/extensions/date_arithmetic_spec.rb +0 -167
- data/spec/extensions/defaults_setter_spec.rb +0 -102
- data/spec/extensions/delay_add_association_spec.rb +0 -74
- data/spec/extensions/dirty_spec.rb +0 -180
- data/spec/extensions/duplicate_columns_handler_spec.rb +0 -110
- data/spec/extensions/eager_each_spec.rb +0 -66
- 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/eval_inspect_spec.rb +0 -73
- data/spec/extensions/filter_having_spec.rb +0 -40
- data/spec/extensions/force_encoding_spec.rb +0 -114
- data/spec/extensions/from_block_spec.rb +0 -21
- data/spec/extensions/graph_each_spec.rb +0 -119
- data/spec/extensions/hash_aliases_spec.rb +0 -24
- data/spec/extensions/hook_class_methods_spec.rb +0 -429
- data/spec/extensions/identifier_columns_spec.rb +0 -17
- data/spec/extensions/inflector_spec.rb +0 -183
- data/spec/extensions/input_transformer_spec.rb +0 -54
- data/spec/extensions/insert_returning_select_spec.rb +0 -46
- data/spec/extensions/instance_filters_spec.rb +0 -79
- data/spec/extensions/instance_hooks_spec.rb +0 -276
- data/spec/extensions/inverted_subsets_spec.rb +0 -33
- data/spec/extensions/json_serializer_spec.rb +0 -304
- data/spec/extensions/lazy_attributes_spec.rb +0 -170
- data/spec/extensions/list_spec.rb +0 -278
- data/spec/extensions/looser_typecasting_spec.rb +0 -43
- data/spec/extensions/many_through_many_spec.rb +0 -2172
- data/spec/extensions/meta_def_spec.rb +0 -21
- data/spec/extensions/migration_spec.rb +0 -728
- data/spec/extensions/modification_detection_spec.rb +0 -80
- data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -91
- data/spec/extensions/named_timezones_spec.rb +0 -108
- data/spec/extensions/nested_attributes_spec.rb +0 -697
- data/spec/extensions/no_auto_literal_strings_spec.rb +0 -65
- data/spec/extensions/null_dataset_spec.rb +0 -85
- data/spec/extensions/optimistic_locking_spec.rb +0 -128
- data/spec/extensions/pagination_spec.rb +0 -118
- data/spec/extensions/pg_array_associations_spec.rb +0 -736
- data/spec/extensions/pg_array_ops_spec.rb +0 -143
- data/spec/extensions/pg_array_spec.rb +0 -390
- data/spec/extensions/pg_enum_spec.rb +0 -92
- data/spec/extensions/pg_hstore_ops_spec.rb +0 -236
- data/spec/extensions/pg_hstore_spec.rb +0 -206
- data/spec/extensions/pg_inet_ops_spec.rb +0 -101
- data/spec/extensions/pg_inet_spec.rb +0 -52
- data/spec/extensions/pg_interval_spec.rb +0 -76
- data/spec/extensions/pg_json_ops_spec.rb +0 -275
- data/spec/extensions/pg_json_spec.rb +0 -218
- data/spec/extensions/pg_loose_count_spec.rb +0 -17
- data/spec/extensions/pg_range_ops_spec.rb +0 -58
- data/spec/extensions/pg_range_spec.rb +0 -473
- data/spec/extensions/pg_row_ops_spec.rb +0 -60
- data/spec/extensions/pg_row_plugin_spec.rb +0 -62
- data/spec/extensions/pg_row_spec.rb +0 -360
- data/spec/extensions/pg_static_cache_updater_spec.rb +0 -92
- data/spec/extensions/pg_typecast_on_load_spec.rb +0 -63
- data/spec/extensions/prepared_statements_associations_spec.rb +0 -159
- data/spec/extensions/prepared_statements_safe_spec.rb +0 -61
- data/spec/extensions/prepared_statements_spec.rb +0 -103
- data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -31
- data/spec/extensions/pretty_table_spec.rb +0 -92
- data/spec/extensions/query_literals_spec.rb +0 -183
- data/spec/extensions/query_spec.rb +0 -102
- data/spec/extensions/rcte_tree_spec.rb +0 -392
- data/spec/extensions/round_timestamps_spec.rb +0 -43
- data/spec/extensions/schema_caching_spec.rb +0 -41
- data/spec/extensions/schema_dumper_spec.rb +0 -814
- data/spec/extensions/schema_spec.rb +0 -117
- data/spec/extensions/scissors_spec.rb +0 -26
- data/spec/extensions/select_remove_spec.rb +0 -38
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -101
- data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
- data/spec/extensions/serialization_spec.rb +0 -362
- data/spec/extensions/server_block_spec.rb +0 -90
- data/spec/extensions/server_logging_spec.rb +0 -45
- data/spec/extensions/set_overrides_spec.rb +0 -61
- data/spec/extensions/sharding_spec.rb +0 -198
- data/spec/extensions/shared_caching_spec.rb +0 -175
- data/spec/extensions/single_table_inheritance_spec.rb +0 -297
- data/spec/extensions/singular_table_names_spec.rb +0 -22
- data/spec/extensions/skip_create_refresh_spec.rb +0 -17
- data/spec/extensions/spec_helper.rb +0 -71
- data/spec/extensions/split_array_nil_spec.rb +0 -24
- data/spec/extensions/split_values_spec.rb +0 -22
- data/spec/extensions/sql_comments_spec.rb +0 -27
- data/spec/extensions/sql_expr_spec.rb +0 -60
- data/spec/extensions/static_cache_spec.rb +0 -361
- data/spec/extensions/string_agg_spec.rb +0 -85
- 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 -66
- data/spec/extensions/subset_conditions_spec.rb +0 -38
- data/spec/extensions/table_select_spec.rb +0 -71
- data/spec/extensions/tactical_eager_loading_spec.rb +0 -136
- data/spec/extensions/thread_local_timezones_spec.rb +0 -67
- data/spec/extensions/timestamps_spec.rb +0 -175
- data/spec/extensions/to_dot_spec.rb +0 -154
- data/spec/extensions/touch_spec.rb +0 -203
- data/spec/extensions/tree_spec.rb +0 -274
- data/spec/extensions/typecast_on_load_spec.rb +0 -80
- data/spec/extensions/unlimited_update_spec.rb +0 -20
- data/spec/extensions/update_or_create_spec.rb +0 -87
- data/spec/extensions/update_primary_key_spec.rb +0 -100
- data/spec/extensions/update_refresh_spec.rb +0 -53
- data/spec/extensions/uuid_spec.rb +0 -106
- data/spec/extensions/validate_associated_spec.rb +0 -52
- data/spec/extensions/validation_class_methods_spec.rb +0 -1027
- data/spec/extensions/validation_helpers_spec.rb +0 -554
- data/spec/extensions/xml_serializer_spec.rb +0 -207
- 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 -55
- data/spec/integration/associations_test.rb +0 -2506
- data/spec/integration/database_test.rb +0 -113
- data/spec/integration/dataset_test.rb +0 -1858
- data/spec/integration/eager_loader_test.rb +0 -687
- data/spec/integration/migrator_test.rb +0 -262
- data/spec/integration/model_test.rb +0 -230
- data/spec/integration/plugin_test.rb +0 -2297
- data/spec/integration/prepared_statement_test.rb +0 -467
- data/spec/integration/schema_test.rb +0 -815
- data/spec/integration/spec_helper.rb +0 -56
- data/spec/integration/timezone_test.rb +0 -86
- data/spec/integration/transaction_test.rb +0 -406
- data/spec/integration/type_test.rb +0 -133
- data/spec/model/association_reflection_spec.rb +0 -565
- data/spec/model/associations_spec.rb +0 -4589
- data/spec/model/base_spec.rb +0 -759
- data/spec/model/class_dataset_methods_spec.rb +0 -150
- data/spec/model/dataset_methods_spec.rb +0 -149
- data/spec/model/eager_loading_spec.rb +0 -2197
- data/spec/model/hooks_spec.rb +0 -604
- data/spec/model/inflector_spec.rb +0 -26
- data/spec/model/model_spec.rb +0 -1097
- data/spec/model/plugins_spec.rb +0 -299
- data/spec/model/record_spec.rb +0 -2162
- data/spec/model/spec_helper.rb +0 -46
- data/spec/model/validations_spec.rb +0 -193
- 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/spec_config.rb +0 -10
@@ -1,57 +0,0 @@
|
|
1
|
-
= Improvements
|
2
|
-
|
3
|
-
* Sequel now works with ruby 2.3's --enable-frozen-string-literal,
|
4
|
-
and all of the library files are set to use frozen string
|
5
|
-
literals by default.
|
6
|
-
|
7
|
-
A couple adapters and extensions depend on libraries that have
|
8
|
-
issues with frozen string literals. Pull requests have been sent
|
9
|
-
to each of those dependencies.
|
10
|
-
|
11
|
-
* The migrators will now raise an exception if a migration file
|
12
|
-
contains no migrations or more than one migration.
|
13
|
-
|
14
|
-
* The jdbc/postgresql adapter now supports using PostgreSQL specific
|
15
|
-
types in bound variables. Note that the current version of
|
16
|
-
jdbc-postgres (9.4.1204) has regressions that affect this, users
|
17
|
-
who need this support should stick with jdbc-postgres 9.4.1200 or
|
18
|
-
below.
|
19
|
-
|
20
|
-
* The jdbc/postgresql adapter now works around a regression in Java
|
21
|
-
method lookup in JRuby 9.0.5.0
|
22
|
-
|
23
|
-
* The setter methods added by the association_pks plugin now do type
|
24
|
-
casting immediately, instead of right before the data will be used.
|
25
|
-
This makes them more similar to column setter methods, and ensures
|
26
|
-
that future calls to the getters that use cached values will
|
27
|
-
return correctly typecast data.
|
28
|
-
|
29
|
-
* The PostgreSQL array parser in the pg_array extension now handles
|
30
|
-
arrays with explicit bounds. The explicit bounds are ignored, so
|
31
|
-
such values do not round trip, and there is currently no support for
|
32
|
-
creating arrays with explicit bounds.
|
33
|
-
|
34
|
-
* Creating a table with a simple non-incrementing primary key and a
|
35
|
-
self-referential foreign key now works correctly on MySQL:
|
36
|
-
|
37
|
-
DB.create_table!(:table) do
|
38
|
-
Integer :id, :primary_key=>true
|
39
|
-
foreign_key :fk, :table
|
40
|
-
end
|
41
|
-
|
42
|
-
* Database#disconnect in the oracle adapter now works correctly on
|
43
|
-
more recent versions of oci8 where #logoff can raise OCIException
|
44
|
-
instead of OCIInvalidHandle.
|
45
|
-
|
46
|
-
= Backwards Compatibility
|
47
|
-
|
48
|
-
* The pg_array extension no longer defines
|
49
|
-
Sequel::Postgres::PGArray::JSONCreator. This should only affect
|
50
|
-
backwards compatibility if you were accessing the constant directly.
|
51
|
-
The :parser option to Sequel::Postgres::PGArray.register is also no
|
52
|
-
longer respected, but that should not affect backwards compatibility.
|
53
|
-
|
54
|
-
* The Sequel::Model#convert_cpk_array private method that was added by
|
55
|
-
the association_pks plugin has been removed.
|
56
|
-
Sequel::Model#convert_pk_array handles both simple and composite
|
57
|
-
primary keys now.
|
@@ -1,132 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A no_auto_literal_strings extension has been added, which removes the
|
4
|
-
automatic usage of strings in filter arguments as literal SQL code.
|
5
|
-
By default, if you do:
|
6
|
-
|
7
|
-
DB[:albums].where("name > 'N'")
|
8
|
-
|
9
|
-
By default Sequel will treat "name > 'N'" as SQL code. However,
|
10
|
-
this makes it much easier to introduce SQL injection:
|
11
|
-
|
12
|
-
# SQL Injection vulnerability in default Sequel
|
13
|
-
DB[:albums].where("name > 'params[:letter]'")
|
14
|
-
|
15
|
-
Sequel does support using placeholders when using literal strings:
|
16
|
-
|
17
|
-
# Safe in default Sequel
|
18
|
-
DB[:albums].where("name > ?", params[:letter])
|
19
|
-
|
20
|
-
However, if you forget to use placeholders, you can end up with SQL
|
21
|
-
injection. Accidental usage of filter strings derived from user
|
22
|
-
input as literal SQL code is probably the most common SQL injection
|
23
|
-
vector in applications using Sequel.
|
24
|
-
|
25
|
-
With the no_auto_literal_strings extension, passing a plain string
|
26
|
-
as the first or only argument to a filter method raises an
|
27
|
-
exception. If you want to use literal SQL code, you have to do so
|
28
|
-
explicitly:
|
29
|
-
|
30
|
-
DB[:albums].where(Sequel.lit("name > 'N'"))
|
31
|
-
|
32
|
-
You can also specify placeholders when using Sequel.lit:
|
33
|
-
|
34
|
-
DB[:albums].where(Sequel.lit("name > ?", params[:letter]))
|
35
|
-
|
36
|
-
Note that in many cases, you can avoid using literal SQL strings
|
37
|
-
completely:
|
38
|
-
|
39
|
-
DB[:albums].where{|v| v.name > params[:letter]}
|
40
|
-
|
41
|
-
* one_through_one associations now support a setter method:
|
42
|
-
|
43
|
-
Foo.one_through_one :bar
|
44
|
-
|
45
|
-
foo = Foo[1]
|
46
|
-
foo.bar = Bar[2]
|
47
|
-
foo.bar = nil
|
48
|
-
|
49
|
-
This will check the current entry in the join table, and based on
|
50
|
-
the argument and the current entry, run a DELETE, INSERT, or UPDATE
|
51
|
-
query, or take no action if the join table is already in the
|
52
|
-
correct state.
|
53
|
-
|
54
|
-
* Model.default_association_options has been added, which supports
|
55
|
-
default options for all future associations. You can use this to
|
56
|
-
do:
|
57
|
-
|
58
|
-
Model.default_association_options = {:read_only=>true}
|
59
|
-
|
60
|
-
Which makes associations not create modification methods by default.
|
61
|
-
You could still create the modification methods by passing
|
62
|
-
:read_only=>true when creating association.
|
63
|
-
|
64
|
-
* The tactical_eager_loading plugin now supports two additional
|
65
|
-
options when calling an association method: :eager and
|
66
|
-
:eager_reload. Example:
|
67
|
-
|
68
|
-
artist = Artist.all.first
|
69
|
-
|
70
|
-
# Loads all albums for all of the artists,
|
71
|
-
# and all tracks for all of those albums
|
72
|
-
artist.albums(:eager=>:tracks)
|
73
|
-
|
74
|
-
# Reload the artists association for all artists
|
75
|
-
artist.albums(:eager_reload=>true)
|
76
|
-
|
77
|
-
You can also use the :eager option for an eager loading callback:
|
78
|
-
|
79
|
-
# Eagerly load the albums with names starting with A-M
|
80
|
-
artist.albums(:eager=>proc{|ds| ds.where(:name > 'N')})
|
81
|
-
|
82
|
-
* The association_pks plugin now supports an :association_pks_nil
|
83
|
-
association option in the association_pks setter, for determining
|
84
|
-
how nil values should be handled.
|
85
|
-
|
86
|
-
In Sequel <4.31.0, if you provided nil, it would either raise an
|
87
|
-
exception immediately if :delay_pks was not set, or on saving if
|
88
|
-
:delay_pks was set.
|
89
|
-
|
90
|
-
In Sequel 4.31.0, if :delay_pks was not set, it would remove all
|
91
|
-
associated rows. If :delay_pks was set, it would do nothing.
|
92
|
-
|
93
|
-
You can now set :association_pks_nil=>:remove to remove all
|
94
|
-
associated values on nil, or :association_pks_nil=>:ignore to ignore
|
95
|
-
a nil value passed to the method. Without :association_pks_nil set,
|
96
|
-
an exception will be raised.
|
97
|
-
|
98
|
-
* Dataset#delete_from has been added on MySQL, allowing deletions from
|
99
|
-
multiple tables in a single query:
|
100
|
-
|
101
|
-
DB[:a].join(:b, :a_id=>:id).delete_from(:a, :b).delete
|
102
|
-
# DELETE a, b FROM a INNER JOIN b ON (b.a_id = a.id)
|
103
|
-
|
104
|
-
* The JDBC schema parser now includes a :remarks entry for each
|
105
|
-
column, which contains comments on the column.
|
106
|
-
|
107
|
-
= Other Improvements
|
108
|
-
|
109
|
-
* The setter method added by the association_pks plugin now handles
|
110
|
-
the empty array correctly when :delay_pks is set. Previously, if
|
111
|
-
the empty array was passed, Sequel made no modifications in this
|
112
|
-
case. Sequel now correctly removes all associated values if an
|
113
|
-
empty array is passed.
|
114
|
-
|
115
|
-
* The eager_each plugin now handles eager loading when using
|
116
|
-
Dataset#first and related methods. Previously, the behavior was
|
117
|
-
unspecified. In Sequel <4.27.0 Dataset#first did eager loading
|
118
|
-
correctly in the eager case, but incorrectly in the eager_graph
|
119
|
-
case. In Sequel 4.27.0-4.31.0, it did not do eager loading in
|
120
|
-
either case.
|
121
|
-
|
122
|
-
* The tactical_eager_loading plugin will not automatically eager load
|
123
|
-
if passing a proc or block to an association method, since the proc
|
124
|
-
or block could be specific to the receiver.
|
125
|
-
|
126
|
-
* Sequel now uses a mutex to synchronize access to the association
|
127
|
-
cache on MRI, as it does on other ruby implementations.
|
128
|
-
|
129
|
-
= Backwards Compatibility
|
130
|
-
|
131
|
-
* See above for changes in eager_each and association_pks plugin
|
132
|
-
behavior.
|
@@ -1,88 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A Sequel::Model.require_valid_table accessor has been added. This
|
4
|
-
setting is false for backwards compatibility, but if set to true,
|
5
|
-
will raise an error you try to create a model class where an
|
6
|
-
invalid table name is used or the schema or columns cannot be
|
7
|
-
determined. This makes it easier to catch bugs, as things will
|
8
|
-
fail fast, but it means that you must change code like:
|
9
|
-
|
10
|
-
class Foo < Sequel::Model
|
11
|
-
set_dataset :my_foos
|
12
|
-
end
|
13
|
-
|
14
|
-
to:
|
15
|
-
|
16
|
-
class Foo < Sequel::Model(:my_foos)
|
17
|
-
end
|
18
|
-
|
19
|
-
as otherwise Foo will attempt to use the foos table by default
|
20
|
-
when creating the class, which will raise an error as it is not
|
21
|
-
the correct table name.
|
22
|
-
|
23
|
-
* Sequel::Database#transaction now supports a :savepoint=>:only
|
24
|
-
option, which will create a savepoint if already inside a
|
25
|
-
transaction, but will yield without creating a transaction if
|
26
|
-
not inside a transaction. The use case for this is when you
|
27
|
-
are running code that may raise an exception, and you don't
|
28
|
-
want to invalidate the current transaction state.
|
29
|
-
|
30
|
-
= Other Improvements
|
31
|
-
|
32
|
-
* The graph_each extension now splits results into subhashes when
|
33
|
-
using Sequel::Dataset#first, as it did before Sequel 4.27.0.
|
34
|
-
|
35
|
-
* On PostgreSQL, Dataset#insert_conflict now accepts an array of
|
36
|
-
columns as the value for the :target option.
|
37
|
-
|
38
|
-
* You can now pass a Sequel::SQL::Identifier or a
|
39
|
-
Sequel::SQL::QualifiedIdentifer as the table argument when creating
|
40
|
-
a foreign key. Previously, only symbols were supported, and using
|
41
|
-
other values required specifying the :table option. So this will
|
42
|
-
now work to reference a table that includes a double underscore:
|
43
|
-
|
44
|
-
foreign_key :foo_id, Sequel.identifier(:fo__oo)
|
45
|
-
|
46
|
-
* Creating model classes inside a transaction on PostgreSQL where
|
47
|
-
the implicit table name isn't correct no longer causes the
|
48
|
-
transaction to fail.
|
49
|
-
|
50
|
-
Similar issues were also fixed in the boolean_readers,
|
51
|
-
boolean_subsets, and class_table_inheritance plugins.
|
52
|
-
|
53
|
-
* On PostgreSQL, You can now use the :qualify=>true option in the
|
54
|
-
schema dumper, to dump using schema-qualified table names.
|
55
|
-
|
56
|
-
* On Microsoft SQL Server, the set_column_allow_null and
|
57
|
-
set_column_not_null alter table methods now work on varchar(max),
|
58
|
-
text, and similar columns.
|
59
|
-
|
60
|
-
* On Oracle, Sequel::Database#sequence_for_table now returns nil if
|
61
|
-
given a table that doesn't exist or that the user does not have
|
62
|
-
access to.
|
63
|
-
|
64
|
-
* Passing arbitrary objects to a model association method now
|
65
|
-
indicates that the association should be reloaded, which was
|
66
|
-
used to work but was broken in Sequel 4.32.0.
|
67
|
-
|
68
|
-
* It is now possible to raise Sequel::ValidationFailed and
|
69
|
-
Sequel::HookFailed without an argument.
|
70
|
-
|
71
|
-
= Backwards Compatibility
|
72
|
-
|
73
|
-
* Sequel::Model no longer swallows many errors when subclassing or
|
74
|
-
setting datasets. While this should hopefully not affect backwards
|
75
|
-
compatibility, it may break things where the methods were raising
|
76
|
-
exceptions. If this does break backwards compatibility, it is
|
77
|
-
most likely because it is no longer hiding another bug that should
|
78
|
-
be fixed. Specific changes include:
|
79
|
-
|
80
|
-
* Model.inherited no longer rescues exceptions raised by set_dataset
|
81
|
-
* When subclassing a model that has a dataset, the columns and
|
82
|
-
schema are just copied from the superclass
|
83
|
-
* Only Sequel::Error is rescued in calls to columns and schema,
|
84
|
-
before it would rescue StandardError.
|
85
|
-
|
86
|
-
* The Sequel.firebird and Sequel.informix adapter methods have been
|
87
|
-
removed, they are no longer needed as the firebird and informix
|
88
|
-
adapters were removed a few versions back.
|
@@ -1,86 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A duplicate_columns_handler extension has been added, for printing a
|
4
|
-
warning or raising an exception if a dataset returns multiple
|
5
|
-
columns with the same name. You can set this globally for the
|
6
|
-
Database:
|
7
|
-
|
8
|
-
DB.extension :duplicate_columns_handler
|
9
|
-
DB.opts[:on_duplicate_columns] = :warn
|
10
|
-
DB.opts[:on_duplicate_columns] = proc do |columns|
|
11
|
-
columns.include?(:foo) ? :raise : :ignore
|
12
|
-
end
|
13
|
-
|
14
|
-
or for specific datasets:
|
15
|
-
|
16
|
-
ds = DB[:table].extension(:duplicate_columns_handler)
|
17
|
-
ds = ds.on_duplicate_columns(:raise)
|
18
|
-
ds = ds.on_duplicate_columns do |columns|
|
19
|
-
columns.include?(:foo) ? :raise : :ignore
|
20
|
-
end
|
21
|
-
|
22
|
-
This makes it easier to detect when duplicate columns are returned,
|
23
|
-
which in some cases can cause undesired behavior, such as the values
|
24
|
-
for later columns of the same name overwriting values for earlier
|
25
|
-
columns.
|
26
|
-
|
27
|
-
* The Dataset#to_hash, #to_hash_groups, #select_hash, and
|
28
|
-
#select_hash_groups methods now take an options hash as a third
|
29
|
-
argument. This options hash can now contain a :hash option, which
|
30
|
-
specifies the object in which the resulting values should be
|
31
|
-
placed. You can use this to have the values inserted into a
|
32
|
-
custom hash, or another object responding to #[] and #[]=.
|
33
|
-
|
34
|
-
* A validators_operator validation has been added to the
|
35
|
-
validation_helpers plugin:
|
36
|
-
|
37
|
-
class Example < Sequel::Model
|
38
|
-
def validate
|
39
|
-
super
|
40
|
-
validates_operator(:>, 3, :column1)
|
41
|
-
validates_operator(:<=, 4, [:column2, :column3])
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
* The pg_range extension now adds a #register_range_type Database
|
46
|
-
method, supporting per-Database custom range types:
|
47
|
-
|
48
|
-
DB.register_range_type('timerange')
|
49
|
-
|
50
|
-
* The dataset_associations plugin now supports a
|
51
|
-
:dataset_associations_join association option on associations that
|
52
|
-
use joined datasets. This option will have the datasets returned
|
53
|
-
by the dataset association methods join to the same tables that
|
54
|
-
would be joined when retriving the associated objects, allowing
|
55
|
-
selected columns, orders, and filters that reference columns in
|
56
|
-
the joined tables to work correctly.
|
57
|
-
|
58
|
-
* The Database :preconnect option can now be set to :concurrently,
|
59
|
-
which will create the connections in separate threads. This can
|
60
|
-
significantly speed up preconnection in high-latency environments.
|
61
|
-
|
62
|
-
* The Database :name option is now supported, holding an arbitrary
|
63
|
-
name for the database. Currently, it is only used in PoolTimeout
|
64
|
-
exception messages, but it may be used in other places in the
|
65
|
-
future.
|
66
|
-
|
67
|
-
= Other Improvements
|
68
|
-
|
69
|
-
* The prepared_statements_safe plugin now works correctly when using
|
70
|
-
CURRENT_DATE and CURRENT_TIMESTAMP default values for columns.
|
71
|
-
|
72
|
-
* Sequel now recognizes an addition unique constraint violation on
|
73
|
-
Microsoft SQL Server.
|
74
|
-
|
75
|
-
* PoolTimeout exception messages now include the server/shard to which
|
76
|
-
the connection was attempted when using the sharded threaded
|
77
|
-
connection pool.
|
78
|
-
|
79
|
-
= Backwards Compatibility
|
80
|
-
|
81
|
-
* Users of sequel_pg should upgrade to 1.6.17, as older versions of
|
82
|
-
sequel_pg may not work with Sequel 4.34.0+.
|
83
|
-
|
84
|
-
* Any custom extensions that override Dataset#to_hash,
|
85
|
-
#to_hash_groups, #select_hash, and #select_hash_groups need to
|
86
|
-
be modified to add support for accepting the options hash.
|
@@ -1,130 +0,0 @@
|
|
1
|
-
= Forwards Compatibility
|
2
|
-
|
3
|
-
* Ruby 2.4 will unify the Fixnum and Bignum classes into the Integer
|
4
|
-
class, making both Fixnum and Bignum references to Integer. This
|
5
|
-
will have the affect of changing the behavior of Sequel migrations
|
6
|
-
that use a reference to the Bignum class.
|
7
|
-
|
8
|
-
For example, code like this will change behavior in ruby 2.4:
|
9
|
-
|
10
|
-
DB.create_table(:table) do
|
11
|
-
add_column :column, Bignum
|
12
|
-
end
|
13
|
-
# or:
|
14
|
-
DB.get(Sequel.cast('1', Bignum))
|
15
|
-
|
16
|
-
as this references the Bignum class. On ruby <2.4, this will create
|
17
|
-
a 64-bit integer column, on ruby 2.4+, it will create a 32-bit
|
18
|
-
integer column.
|
19
|
-
|
20
|
-
Code like this will be fine and does not need changing:
|
21
|
-
|
22
|
-
DB.create_table(:table) do
|
23
|
-
Bignum :column
|
24
|
-
end
|
25
|
-
|
26
|
-
as this calls the Bignum method.
|
27
|
-
|
28
|
-
Sequel now supports the :Bignum symbol as a generic type, so you
|
29
|
-
can now switch references to the Bignum class to the :Bignum
|
30
|
-
symbol whenever you want a generic 64-bit integer type:
|
31
|
-
|
32
|
-
DB.create_table(:table) do
|
33
|
-
add_column :column, :Bignum
|
34
|
-
end
|
35
|
-
# or:
|
36
|
-
DB.get(Sequel.cast('1', :Bignum))
|
37
|
-
|
38
|
-
Note that you should only do this if you are using Sequel 4.35.0+,
|
39
|
-
as previous versions of Sequel will treat the :Bignum symbol as
|
40
|
-
a database-specific type named Bignum.
|
41
|
-
|
42
|
-
= New Features
|
43
|
-
|
44
|
-
* A Sequel::Database#log_connection_info accessor has been added. If
|
45
|
-
set to true, this includes connection information in Sequel's query
|
46
|
-
log. In threaded connection pools (the default), this makes it
|
47
|
-
simple to see which connection is executing which queries.
|
48
|
-
|
49
|
-
DB.log_connection_info = true
|
50
|
-
DB.get(1)
|
51
|
-
# Logged: (0.000004s) (conn: 9713390226040) SELECT 1 AS v LIMIT
|
52
|
-
|
53
|
-
* Sequel::Model#lock! now supports an optional lock style, instead
|
54
|
-
of always using FOR UPDATE (which is still the default):
|
55
|
-
|
56
|
-
Example.first.lock!('FOR NO KEY UPDATE')
|
57
|
-
#=> SELECT * FROM examples WHERE id = 1 FOR NO KEY UPDATE LIMIT 1
|
58
|
-
|
59
|
-
* Sequel::Database#skip_locked has been added, which skips locked rows
|
60
|
-
when returning query results. This is useful whenever you are
|
61
|
-
implementing a queue or similar data structure. Currently, this is
|
62
|
-
supported on PostgreSQL 9.5+, Oracle, and Microsoft SQL Server.
|
63
|
-
|
64
|
-
* An sql_comments extension has been added for setting SQL comments
|
65
|
-
on queries:
|
66
|
-
|
67
|
-
ds = DB[:table].comment("Some Comment").all
|
68
|
-
# SELECT * FROM table -- Some Comment
|
69
|
-
#
|
70
|
-
|
71
|
-
All consecutive whitespace in the comment is replaced by a
|
72
|
-
single space, and the comment ends in a newline so that it works
|
73
|
-
correctly in subqueries.
|
74
|
-
|
75
|
-
This extension is mostly useful if you are doing analysis of your
|
76
|
-
database server query log and want to include higher level
|
77
|
-
information about the query in the comment.
|
78
|
-
|
79
|
-
* A server_logging extension has been added, which includes
|
80
|
-
server/shard information in the query log, if connection info
|
81
|
-
is being logged.
|
82
|
-
|
83
|
-
DB.extension :server_logging
|
84
|
-
DB.log_connection_info = true
|
85
|
-
DB.get(1)
|
86
|
-
# Logged: (0.000004s) (conn: 9712828677240, server: read_only)
|
87
|
-
# SELECT 1 AS v LIMIT 1
|
88
|
-
DB[:a].insert(:b=>1)
|
89
|
-
# Logged: (0.000003s) (conn: 9712534040260, server: default)
|
90
|
-
# INSERT INTO a (b) VALUES (1)
|
91
|
-
|
92
|
-
* On PostgreSQL, Database#full_text_search now supports a
|
93
|
-
:headline option for adding an extract of the matched text to
|
94
|
-
the SELECT list.
|
95
|
-
|
96
|
-
* Sequel::Postgres::PGRange#cover? has been added to the pg_range
|
97
|
-
extension, which works with empty, unbounded, and exclusive
|
98
|
-
beginning ranges. Previously, using #cover? with these ranges
|
99
|
-
would raise an exception. Note that cover? is now always
|
100
|
-
defined, where previously it was only defined on ruby 1.9+.
|
101
|
-
|
102
|
-
= Other Improvements
|
103
|
-
|
104
|
-
* The jdbc adapters now work correctly on JRuby 9.1. Previously,
|
105
|
-
some parts were broken on JRuby 9.1 due to frozen string literal
|
106
|
-
issues.
|
107
|
-
|
108
|
-
* Sequel::Dataset#to_hash and #to_hash_groups now work correctly for
|
109
|
-
model datasets doing eager loading.
|
110
|
-
|
111
|
-
* Using Sequel::Database#transaction with the :rollback=>:always
|
112
|
-
option now automatically uses a savepoint if supported when run
|
113
|
-
inside another transaction. If savepoints are not supported,
|
114
|
-
using :rollback=>:always inside a transaction will now raise an
|
115
|
-
exception.
|
116
|
-
|
117
|
-
* The delay_add_association plugin now handles hashes and primary keys
|
118
|
-
passed to the add_* association methods.
|
119
|
-
|
120
|
-
* The json_serializer :include option now works correctly when using
|
121
|
-
*_to_many associations with the association_proxies plugin.
|
122
|
-
|
123
|
-
* The schema_dumper extension now recognizes bool as a boolean type,
|
124
|
-
for consistency with the Database schema parser.
|
125
|
-
|
126
|
-
= Backwards Compatibility
|
127
|
-
|
128
|
-
* Custom adapters should switch from using log_yield to
|
129
|
-
log_connection_yield so that they work correctly when using
|
130
|
-
log_connection_info.
|
@@ -1,116 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Sequel::Model::Model() has been added, which allows for
|
4
|
-
Sequel::Model() like behavior where the base class used is a
|
5
|
-
subclass of Sequel::Model. To make it easier to use,
|
6
|
-
Sequel::Model.def_Model has also been added, which takes a module
|
7
|
-
and adds a Model() method to the module that calls Model() on the
|
8
|
-
receiver.
|
9
|
-
|
10
|
-
A :class_namespace association option has been added to make it
|
11
|
-
possible to set a default namespace for the :class option if given
|
12
|
-
as a symbol or string.
|
13
|
-
|
14
|
-
Sequel::Model.Model.cache_anonymous_models has been added and
|
15
|
-
controls whether to cache anonymous model subclasses created by
|
16
|
-
Sequel::Model::Model() on a per-class basis.
|
17
|
-
|
18
|
-
These changes are designed to make it easier to use namespaced
|
19
|
-
models, for example:
|
20
|
-
|
21
|
-
module Foo
|
22
|
-
Model = Class.new(Sequel::Model)
|
23
|
-
Model.def_Model(self)
|
24
|
-
DB = Model.db = Sequel.connect(ENV['FOO_DATABASE_URL'])
|
25
|
-
Model.plugin :prepared_statements
|
26
|
-
Model.default_association_options[:class_namespace] = 'Foo'
|
27
|
-
|
28
|
-
class Bar < Model
|
29
|
-
# Uses Foo::DB[:bars] as dataset
|
30
|
-
|
31
|
-
# Implicitly uses Foo::Baz as associated class
|
32
|
-
one_to_many :bazes
|
33
|
-
|
34
|
-
# Uses Foo::Baz due to :class_namespace option
|
35
|
-
one_to_many :oldest_bazes, :class=>:Baz, :order=>:id
|
36
|
-
end
|
37
|
-
|
38
|
-
class Baz < Model(:my_baz)
|
39
|
-
# Uses Foo::DB[:my_baz] as dataset
|
40
|
-
|
41
|
-
# Implicitly uses Foo::Bar as associated class
|
42
|
-
one_to_many :bars
|
43
|
-
|
44
|
-
# Uses Foo::Bar due to :class_namespace option
|
45
|
-
one_to_many :oldest_bars, :class=>:Bar, :order=>:id
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
* A string_agg extension has been added for aggregate string
|
50
|
-
concatentation support on PostgreSQL 9+, SQLAnywhere 12+,
|
51
|
-
Oracle11g+, DB 9.7+, MySQL, HSQLDB, H2, and CUBRID:
|
52
|
-
|
53
|
-
DB.extension :string_agg
|
54
|
-
ds = DB[:table]
|
55
|
-
ds.get(Sequel.string_agg(:c)) # ',' default separator
|
56
|
-
ds.get(Sequel.string_agg(:c, ' - ')) # custom separator
|
57
|
-
ds.get(Sequel.string_agg(:c).order(:bar)) # force order
|
58
|
-
ds.get(Sequel.string_agg(:c).distinct) # remove duplicates
|
59
|
-
|
60
|
-
* A connection_expiration extension has been added, for automatically
|
61
|
-
removing connections from the connection pool after they have been
|
62
|
-
open for a given amount of time (4 hours by default).
|
63
|
-
|
64
|
-
* Support for <, <=, >, and >= operator validations when using integer
|
65
|
-
and string arguments has been added to the constraint_validations
|
66
|
-
extension and plugin.
|
67
|
-
|
68
|
-
* Sequel::SQL::Function#order has been added to support ordered
|
69
|
-
aggregate functions:
|
70
|
-
|
71
|
-
Sequel.function(:foo, :bar).order(:baz)
|
72
|
-
# foo(bar ORDER BY baz)
|
73
|
-
|
74
|
-
= Other Improvements
|
75
|
-
|
76
|
-
* The validates_operator validation in validation_helpers now
|
77
|
-
considers nil values as invalid unless :allow_nil or a similar
|
78
|
-
option is used. Previously, using validates_operator with a nil
|
79
|
-
value would probably raise a NoMethodError. This makes
|
80
|
-
validates_operator more similar to other validations.
|
81
|
-
|
82
|
-
* The threaded connection pools no longer hold the pool mutex when
|
83
|
-
disconnecting connections, which is useful if the driver blocks
|
84
|
-
when disconnecting connections.
|
85
|
-
|
86
|
-
* The connection_validator extension no longer holds a reference
|
87
|
-
to connections that have been disconnected.
|
88
|
-
|
89
|
-
* The connection_validator extension no longer overwrites the
|
90
|
-
connection_validation_timeout if loaded a second time.
|
91
|
-
|
92
|
-
* Sequel now closes cursors as soon as it is done using them in the
|
93
|
-
oracle adapter, instead of waiting for GC to clean them up.
|
94
|
-
|
95
|
-
* Sequel now handles disconnect errors that occur when literalizing
|
96
|
-
strings in the mysql2 and postgres adapters.
|
97
|
-
|
98
|
-
= Backwards Compatibility
|
99
|
-
|
100
|
-
* Using the Bignum class as a generic type is now deprecated. As
|
101
|
-
announced in the 4.35.0 release notes, ruby 2.4 is unifying the
|
102
|
-
Fixnum and Bignum classes into Integer, which results in the
|
103
|
-
behavior of the Bignum class changing. 4.35.0 added support for
|
104
|
-
using the :Bignum symbol as a generic 64-bit integer type, and
|
105
|
-
Sequel users now need to switch to that to avoid the deprecation
|
106
|
-
warning.
|
107
|
-
|
108
|
-
Sequel 4.41.0 (to be released in December), will drop support
|
109
|
-
for using the Bignum class as a generic type. This is being done
|
110
|
-
before the release of ruby 2.4 to hopefully make it unlikely that
|
111
|
-
users will be subject to a behavior changes when upgrading ruby
|
112
|
-
versions.
|
113
|
-
|
114
|
-
Related to this change, external adapters need to switch from
|
115
|
-
overriding Database#type_literal_generic_bignum to
|
116
|
-
Database#type_literal_generic_bignum_symbol.
|