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,155 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A connection_validator extension has been added, which
|
4
|
-
automatically determines if connections checked out from the pool
|
5
|
-
are still valid. If they are not valid, the connection is
|
6
|
-
disconnected and another connection is used automatically,
|
7
|
-
transparent to user code.
|
8
|
-
|
9
|
-
Checking if connections are valid requires a query, so this
|
10
|
-
extension causes a performance hit. For that reason, connections
|
11
|
-
are only checked by default if they have been inactive for more than
|
12
|
-
a configured amount of time (1 hour by default). You can choose to
|
13
|
-
validate connections on every checkout via:
|
14
|
-
|
15
|
-
DB.pool.connection_validation_timeout = -1
|
16
|
-
|
17
|
-
However, this can cause a substantial performance hit unless you are
|
18
|
-
purposely using coarse connection checkouts via manual calls to
|
19
|
-
Database#synchronize (for example, in a Rack middleware). Using
|
20
|
-
coarse checkouts can greatly reduce the amount of concurrency that
|
21
|
-
Sequel supports (for example, limiting the number of concurrent
|
22
|
-
requests to the number of database connections), so this method is
|
23
|
-
not without its tradeoffs.
|
24
|
-
|
25
|
-
* Sequel.delay has been added for a generic form of delayed
|
26
|
-
evaluation. This method takes a block and delays evaluating it
|
27
|
-
until query literalization. By default, Sequel evaluates most
|
28
|
-
arguments immediately:
|
29
|
-
|
30
|
-
foo = 1
|
31
|
-
ds = DB[:bar].where(:baz=>foo)
|
32
|
-
# SELECT * FROM bar WHERE (baz = 1)
|
33
|
-
foo = 2
|
34
|
-
ds
|
35
|
-
# SELECT * FROM bar WHERE (baz = 1)
|
36
|
-
|
37
|
-
Using Sequel.delay, you can delay the evaluation:
|
38
|
-
|
39
|
-
foo = 1
|
40
|
-
ds = DB[:bar].where(:baz=>Sequel.delay{foo})
|
41
|
-
# SELECT * FROM bar WHERE (baz = 1)
|
42
|
-
foo = 2
|
43
|
-
ds
|
44
|
-
# SELECT * FROM bar WHERE (baz = 2)
|
45
|
-
|
46
|
-
* Sequel now supports the :unlogged option when creating tables on
|
47
|
-
PostgreSQL, to create an UNLOGGED table.
|
48
|
-
|
49
|
-
* On SQLite, Database#transaction now supports a :mode option for
|
50
|
-
setting up IMMEDIATE/EXCLUSIVE SQLite transactions. Sequel also
|
51
|
-
supports a Database#transaction_mode accessor for setting the
|
52
|
-
default transaction mode on SQLite.
|
53
|
-
|
54
|
-
* Most pg_* extension objects (e.g. PGArray) now support the #as
|
55
|
-
method for creating an SQL::AliasedExpression object.
|
56
|
-
|
57
|
-
* The single_table_inheritance plugin now supports non-bijective
|
58
|
-
mappings. In lay terms, this means that a one-to-one mapping
|
59
|
-
of column values to classes is no longer required. You can now
|
60
|
-
have multiple column values that map to a single class in the
|
61
|
-
:model_map option, and specify a :key_chooser option to choose
|
62
|
-
which column value to use for the given model class.
|
63
|
-
|
64
|
-
* The touch plugin now handles the touching of many_to_many
|
65
|
-
associations, and other associations that use joined datasets.
|
66
|
-
|
67
|
-
* ConnectionPool#pool_type has been added. It returns a symbol
|
68
|
-
representing the type of connection pool in use (similar to
|
69
|
-
Database#database_type).
|
70
|
-
|
71
|
-
* Database#valid_connection? has been added for checking if a given
|
72
|
-
connection is still valid.
|
73
|
-
|
74
|
-
* Database#disconnect_connection is now part of the public API, and
|
75
|
-
can be used to disconnect a given connection.
|
76
|
-
|
77
|
-
= Other Improvements
|
78
|
-
|
79
|
-
* Uniqueness validation now correctly handles nil values.
|
80
|
-
Previously, it checked the underlying table for other rows where
|
81
|
-
the column IS NULL, but that is incorrect behavior. Sequel's new
|
82
|
-
(correct) behavior is to skip the uniqueness check if the column
|
83
|
-
is nil.
|
84
|
-
|
85
|
-
* Foreign key parsing is now supported on Microsoft SQL Server.
|
86
|
-
|
87
|
-
* Dataset#reverse and #reverse_order now accept virtual row blocks.
|
88
|
-
|
89
|
-
* Changing the name of the primary key column, and possibly other
|
90
|
-
schema changes on the primary key column, are now supported on
|
91
|
-
MySQL.
|
92
|
-
|
93
|
-
* Primary key columns are now specifically marked as NOT NULL on
|
94
|
-
SQLite, as non-integer primary keys on SQLite are not considered
|
95
|
-
NOT NULL by default.
|
96
|
-
|
97
|
-
* Failure to create a native prepared statement is now handled
|
98
|
-
better in the postgres, mysql, and mysql2 adapters.
|
99
|
-
|
100
|
-
* Firebird now emulates selecting data without an underlying table
|
101
|
-
(e.g. DB.get(1)).
|
102
|
-
|
103
|
-
* Finding the name of the constraint that sets column defaults on
|
104
|
-
Microsoft SQL Server now works correctly on JRuby 1.7.
|
105
|
-
|
106
|
-
* An additional type of disconnect error is now recognized in the
|
107
|
-
jdbc/sqlserver adapter.
|
108
|
-
|
109
|
-
* Many adapters have been fixed so that they don't raise an exception
|
110
|
-
if trying to disconnect an already disconnected connection.
|
111
|
-
|
112
|
-
* Many adapters have been fixed so that
|
113
|
-
Database#log_connection_execute logs and executes the given SQL
|
114
|
-
on the connection.
|
115
|
-
|
116
|
-
* Many adapters have been fixed so that
|
117
|
-
Database#database_error_classes returns an array of database
|
118
|
-
exception classes for that adapter.
|
119
|
-
|
120
|
-
* Database#log_exception now handles a nil exception message.
|
121
|
-
|
122
|
-
* Dataset#limit(nil, nil) now resets offset in addition to limit, but
|
123
|
-
you should still use Dataset#unlimited instead.
|
124
|
-
|
125
|
-
* A bin/sequel usage quide has been added to the documentation.
|
126
|
-
|
127
|
-
= Backwards Compatibility
|
128
|
-
|
129
|
-
* Sequel now treats clob columns as strings instead of blobs
|
130
|
-
(except on DB2 when use_clob_as_blob = true). This can make it
|
131
|
-
so the values are returned as strings instead of SQL::Blob values.
|
132
|
-
Since SQL::Blob is a String subclass, this generally will
|
133
|
-
not affect user code unless you are passing the values as input
|
134
|
-
to a separate blob column.
|
135
|
-
|
136
|
-
* The Database <-> ConnectionPool interface was completely changed.
|
137
|
-
Sequel no longer supports custom connection procs or disconnection
|
138
|
-
procs in the connection pools. The :disconnection_proc Database
|
139
|
-
option is no longer respected, and blocks passed to Database.new
|
140
|
-
are now ignored.
|
141
|
-
|
142
|
-
This change should not be user-visible, but if you had any code
|
143
|
-
that was monkeying with the connection pool internals, you may
|
144
|
-
need to modify it.
|
145
|
-
|
146
|
-
* Code that was using the uniqueness check to also check for presence
|
147
|
-
should add a separate check for presence. Such code was broken,
|
148
|
-
as it only worked if there was already a NULL column value in the
|
149
|
-
table. If you were relying on this broken behavior, you should
|
150
|
-
clean up the NULL data in the column and then mark the database
|
151
|
-
column as NOT NULL.
|
152
|
-
|
153
|
-
* If you have code that specifically abuses the fact that non-integer
|
154
|
-
primary keys on SQLite allow NULL values by default, it will no
|
155
|
-
longer work.
|
@@ -1,74 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Dataset#avg, #interval, #min, #max, #range, and #sum now
|
4
|
-
accept virtual row blocks, allowing you to more easily get
|
5
|
-
aggregate values of expressions based on the table:
|
6
|
-
|
7
|
-
DB[:table].sum{some_function(column1, column2)} # => 134
|
8
|
-
# SELECT sum(some_function(column1, column2)) FROM table
|
9
|
-
|
10
|
-
* Database#do has been added on PostgreSQL for using the DO
|
11
|
-
anonymous code block execution statement.
|
12
|
-
|
13
|
-
* Model.dataset_module now uses a Module subclass, which allows
|
14
|
-
you to call subset inside a dataset_module block, making
|
15
|
-
it easier to consolidate dataset method code:
|
16
|
-
|
17
|
-
class Album < Sequel::Model
|
18
|
-
dataset_module do
|
19
|
-
subset(:gold){copies_sold > 500000}
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
* Database#copy_table and #copy_into are now supported on
|
24
|
-
jdbc/postgres.
|
25
|
-
|
26
|
-
* Sequel now supports deferred constraints on constraint types other
|
27
|
-
than foreign keys. The only databases that appear to implement
|
28
|
-
this are Oracle and PostgreSQL.
|
29
|
-
|
30
|
-
* Sequel now supports INITIALLY IMMEDIATE deferred constraints via
|
31
|
-
the :deferrable=>:immediate constraint/column option.
|
32
|
-
|
33
|
-
* Sequel now supports setting the default size of string columns,
|
34
|
-
via the default_string_column_size option or accessor. In some
|
35
|
-
cases, Sequel's default string column size of 255 is too large
|
36
|
-
(e.g. MySQL with utf8mb4 character set), and this allows you to
|
37
|
-
change it.
|
38
|
-
|
39
|
-
= Other Improvements
|
40
|
-
|
41
|
-
* Dataset#count and other methods now use a subselect in the case
|
42
|
-
where the dataset has an offset but no limit.
|
43
|
-
|
44
|
-
* If an error occurs while attempting to commit a transaction, Sequel
|
45
|
-
now attempts to rollback the transaction. Some databases do this
|
46
|
-
automatically, but not all. Among other things, this fixes issues
|
47
|
-
with deferred foreign key constraint violations on SQLite.
|
48
|
-
|
49
|
-
* When extending a model's dataset, the model's instance_dataset is
|
50
|
-
reset, insuring that it will also be extended with the module.
|
51
|
-
|
52
|
-
* When passing an invalid argument to Dataset#filter, the exception
|
53
|
-
message now includes the argument.
|
54
|
-
|
55
|
-
* The force_encoding plugin now works with frozen string values.
|
56
|
-
|
57
|
-
* Public methods added to a model dataset_module now have model
|
58
|
-
class methods created for them even if the method was added outside
|
59
|
-
of a dataset_module block.
|
60
|
-
|
61
|
-
* On PostgreSQL, Database#indexes now includes a :deferrable entry
|
62
|
-
for each index hash, which will be true for unique indexes where
|
63
|
-
the underlying constraint is deferrable.
|
64
|
-
|
65
|
-
* On Microsoft SQL Server 2000, Dataset#update no longer includes a
|
66
|
-
limit (TOP), allowing it to work correctly.
|
67
|
-
|
68
|
-
= Backwards Compatibility
|
69
|
-
|
70
|
-
* Model.dataset_methods has been removed. This was used to store
|
71
|
-
blocks for methods created via def_dataset_method and subset.
|
72
|
-
The internals have been changed so that a dataset_module is
|
73
|
-
always used in these cases, therefore there was no longer a reason
|
74
|
-
for this method.
|
@@ -1,105 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A core_refinements extension has been added, which offers
|
4
|
-
refinement versions of Sequel's core extensions. This requires
|
5
|
-
the new experimental refinement support added in ruby 2.0, and
|
6
|
-
allows you to use the Sequel DSL methods in a file without
|
7
|
-
actually modifying the Symbol, String, Array, and Hash classes.
|
8
|
-
|
9
|
-
* A date_arithmetic extension has been added for performing
|
10
|
-
database-independent date calculations (adding/subtracting an
|
11
|
-
interval to/from a date):
|
12
|
-
|
13
|
-
Sequel.extension :date_arithmetic
|
14
|
-
e = Sequel.date_add(:date_column, :years=>1, :months=>2, :days=>3)
|
15
|
-
DB[:table].where(e > Sequel::CURRENT_DATE)
|
16
|
-
|
17
|
-
In addition to providing the interval as a hash, you can also
|
18
|
-
provide it as an ActiveSupport::Duration object. This extension
|
19
|
-
is supported on 11 database types.
|
20
|
-
|
21
|
-
* Dataset#get can now take an array of multiple expressions to get
|
22
|
-
an array of values, similar to map/select_map:
|
23
|
-
|
24
|
-
value1, value2 = DB[:table].get([:column1, :column2])
|
25
|
-
|
26
|
-
* Sequel can now handle [host.]database.schema.table qualified
|
27
|
-
tables on Microsoft SQL Server. To implement this support,
|
28
|
-
the split_qualifiers method has been added to Database and
|
29
|
-
Dataset for taking a possibly qualified identifier and splitting
|
30
|
-
it into an array of identifier strings.
|
31
|
-
|
32
|
-
* The string_stripper plugin now offers the ability to manually
|
33
|
-
specify which columns to skip stripping for via
|
34
|
-
Model.skip_string_stripping.
|
35
|
-
|
36
|
-
= Other Improvements
|
37
|
-
|
38
|
-
* The jdbc adapter now works with the new jdbc-* gems, which require
|
39
|
-
a manual load_driver step that the older jdbc-* gems did not
|
40
|
-
require.
|
41
|
-
|
42
|
-
* The string_stripper plugin no longer strips blob columns or values.
|
43
|
-
|
44
|
-
* Database#copy_into in both the postgres and jdbc/postgres adapters
|
45
|
-
has been fixed to better handle exceptions.
|
46
|
-
|
47
|
-
* Dataset#hash and Model#hash are now significantly faster.
|
48
|
-
|
49
|
-
* Lambda procs with 0 arity can now be used as virtual row blocks
|
50
|
-
on ruby 1.9. Previously, attempting to use a lambda proc with
|
51
|
-
0 arity as a virtual row block on ruby 1.9 would raise an exception.
|
52
|
-
|
53
|
-
* Schema-qualified composite types are now handled correctly in
|
54
|
-
the pg_row extension.
|
55
|
-
|
56
|
-
* Database#reset_primary_key_sequence on PostgreSQL now works
|
57
|
-
correctly when a default_schema is set.
|
58
|
-
|
59
|
-
* tinyint(1) unsigned columns on MySQL are now parsed as booleans
|
60
|
-
instead of integers on MySQL if converting tinyint to boolean.
|
61
|
-
|
62
|
-
* The jdbc adapter now supports the jdbc-hsqldb gem, so you can
|
63
|
-
now install that instead of having to require the .jar manually.
|
64
|
-
|
65
|
-
* Blobs are now casted correctly on DB2 when the use_clob_as_blob
|
66
|
-
setting is false.
|
67
|
-
|
68
|
-
* Oracle timestamptz types are now handled correctly in the
|
69
|
-
jdbc/oracle adapter.
|
70
|
-
|
71
|
-
* Sequel now defaults to :prefetch_rows = 100 in the oracle
|
72
|
-
adapter, which can significantly improve performance.
|
73
|
-
|
74
|
-
* Sequel now defines respond_to_missing? where method_missing? is
|
75
|
-
defined and the object also responds to respond_to?.
|
76
|
-
|
77
|
-
* Sequel::BasicObject now responds to instance_exec on ruby 1.8.
|
78
|
-
|
79
|
-
= Backwards Compatibility
|
80
|
-
|
81
|
-
* The meta_def method that was defined on Database, Dataset, and
|
82
|
-
Model classes and instances has been moved to an extension named
|
83
|
-
meta_def, and is no longer loaded by default. This method was
|
84
|
-
previously used internally, and it wasn't designed for external
|
85
|
-
use. If you have code that uses meta_def, you should now load the
|
86
|
-
extension manually:
|
87
|
-
|
88
|
-
Sequel.extension :meta_def
|
89
|
-
|
90
|
-
* The private _*_dataset_helper model association methods are no
|
91
|
-
longer defined. The AssociationReflection#dataset_helper_method
|
92
|
-
public method is also no longer defined.
|
93
|
-
|
94
|
-
* Dataset#schema_and_table now always returns strings (or nil).
|
95
|
-
Before, in some cases it would return symbols.
|
96
|
-
|
97
|
-
* Using a conditions specifier array with Dataset#get no longer
|
98
|
-
works due to the new multiple values support in Database#get.
|
99
|
-
So code such as:
|
100
|
-
|
101
|
-
DB[:table].get([[:a, 1], [:b, 2]])
|
102
|
-
|
103
|
-
should be changed to:
|
104
|
-
|
105
|
-
DB[:table].get(Sequel.expr([[:a, 1], [:b, 2]]))
|
@@ -1,152 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Dataset#paged_each has been added, for processing entire datasets
|
4
|
-
without keeping all rows in memory, even if the underlying driver
|
5
|
-
keeps all query results in memory. This is implemented using
|
6
|
-
limits and offsets, and requires an order (model datasets use a
|
7
|
-
default order by primary key). It defaults to fetching 1000
|
8
|
-
rows at a time, but that can be changed via the :rows_per_fetch
|
9
|
-
option.
|
10
|
-
|
11
|
-
This method is drop-in compatible for each. Previously, the
|
12
|
-
pagination extension's each_page method could be used for a
|
13
|
-
similar purpose, but users of each_page are now encouraged to
|
14
|
-
switch to paged_each.
|
15
|
-
|
16
|
-
* Sequel now recognizes constraint violation exceptions on most
|
17
|
-
databases, and will raise specific exceptions for different
|
18
|
-
types of constraint violations, instead of the generic
|
19
|
-
Sequel::DatabaseError:
|
20
|
-
|
21
|
-
* Sequel::ConstraintViolation (generic superclass)
|
22
|
-
* Sequel::CheckConstraintViolation
|
23
|
-
* Sequel::NotNullConstraintViolation
|
24
|
-
* Sequel::ForeignKeyConstraintViolation
|
25
|
-
* Sequel::UniqueConstraintViolation
|
26
|
-
* Sequel::Postgres::ExclusionConstraintViolation
|
27
|
-
|
28
|
-
* The :dataset association option can now take accept an optional
|
29
|
-
association reflection option. Instead of doing:
|
30
|
-
|
31
|
-
Album.one_to_many :artists,
|
32
|
-
:dataset=>{Artist...}
|
33
|
-
|
34
|
-
you can now do:
|
35
|
-
|
36
|
-
Album.one_to_many :artists,
|
37
|
-
:dataset=>{|r| r.associated_dataset...}
|
38
|
-
|
39
|
-
This second form will preform better.
|
40
|
-
|
41
|
-
* Temporary views are now supported on PostgreSQL and SQLite using
|
42
|
-
the :temp option to create_view.
|
43
|
-
|
44
|
-
= Other Improvements
|
45
|
-
|
46
|
-
* Row fetching speed in the tinytds adapter has been increased by
|
47
|
-
up to 60%.
|
48
|
-
|
49
|
-
* Row fetching speed in the mysql2 adapter when using an identifier
|
50
|
-
output method has been increased by up to 50%.
|
51
|
-
|
52
|
-
* On databases where offsets are emulated via the ROW_NUMBER window
|
53
|
-
function (Oracle, DB2, Microsoft SQL Server), using an offset in
|
54
|
-
a subselect is now supported. For example, the following code
|
55
|
-
previously didn't work correctly with emulated offsets:
|
56
|
-
|
57
|
-
# Second 5 rows ordered by column2 of the second 10 rows ordered
|
58
|
-
# by column 1.
|
59
|
-
DB[:table].order(:column1).limit(10, 10).
|
60
|
-
from_self.order(:column2).limit(5, 5)
|
61
|
-
|
62
|
-
Row processing speed has been increased slightly for all adapters
|
63
|
-
that supported databases where offsets are emulated.
|
64
|
-
|
65
|
-
* Association method performance has improved by caching an
|
66
|
-
intermediate dataset. This can close to triple the performance
|
67
|
-
of the association_dataset method, and increase the performance
|
68
|
-
of the association method by close to 30%.
|
69
|
-
|
70
|
-
* Virtual Row performance has increased about 30% in the typical
|
71
|
-
case by using a shared VirtualRow instance.
|
72
|
-
|
73
|
-
* Database#create_or_replace_view is now emulated on databases that
|
74
|
-
don't support it directly by dropping the view before attempting
|
75
|
-
to create it.
|
76
|
-
|
77
|
-
* The columns_introspection extension can now introspect for simple
|
78
|
-
select * queries from subselects, and it can now use the cached
|
79
|
-
schema information in the database for simple select * queries
|
80
|
-
from tables.
|
81
|
-
|
82
|
-
* The identity_map plugin now works correctly with many-to-many
|
83
|
-
right-side composite keys.
|
84
|
-
|
85
|
-
* Dataset#last for Model datasets now works even if you don't specify
|
86
|
-
an order explicitly, giving the last entry by primary key. Note
|
87
|
-
that Dataset#first for model datasets still does not order by
|
88
|
-
default.
|
89
|
-
|
90
|
-
* The eager_each plugin no longer uses Object#extend at runtime.
|
91
|
-
|
92
|
-
* Database#remove_cached_schema is now thread-safe on non-GVL ruby
|
93
|
-
implementations.
|
94
|
-
|
95
|
-
* Connection errors in the jdbc adapter now provide slightly more
|
96
|
-
helpful messages.
|
97
|
-
|
98
|
-
* Sequel now uses the standard offset emulation code in the
|
99
|
-
jdbc/as400 adapter, instead of custom offset emulation code
|
100
|
-
specific to that adapter.
|
101
|
-
|
102
|
-
* Database#create_view with a dataset now works correctly when using
|
103
|
-
the pg_auto_parameterize extension.
|
104
|
-
|
105
|
-
* Database#columns no longer calls the row_proc.
|
106
|
-
|
107
|
-
* Dataset#schema_and_table no longer turns a literal string into a
|
108
|
-
non-literal string.
|
109
|
-
|
110
|
-
* The oracle adapter now works with a :prefetch_rows=>nil option,
|
111
|
-
which explicitly disables prefetching.
|
112
|
-
|
113
|
-
* The mock mssql adapter now sets a server_version so that more
|
114
|
-
parts of it work.
|
115
|
-
|
116
|
-
= Backwards Compatibility
|
117
|
-
|
118
|
-
* Offset emulation via ROW_NUMBER works by moving the query to a
|
119
|
-
subselect that also selects from the ROW_NUMBER window function,
|
120
|
-
and filtering on the ROW_NUMBER in the main query. Previously, the
|
121
|
-
ROW_NUMBER was also present in the output columns, and some
|
122
|
-
adapter code was needed to hide that fact. Now, the outer select
|
123
|
-
selects all of the inner columns in the subselect except for the
|
124
|
-
ROW_NUMBER, reducing the adapter code needed. This has the side
|
125
|
-
effect of potentially requiring a query (or multiple queries for
|
126
|
-
multiple subselects) to determine the columns to use. The
|
127
|
-
columns_introspection extension may reduce the number of queries
|
128
|
-
needed.
|
129
|
-
|
130
|
-
* The correlated_subquery eager limit strategy is no longer supported
|
131
|
-
on Microsoft SQL Server for many_*_many associations. As the
|
132
|
-
window_function eager limit strategy is supported there, there is
|
133
|
-
no reason to use the correlated_subquery strategy.
|
134
|
-
|
135
|
-
* The public AssociationReflection#_dataset_method method has been
|
136
|
-
removed.
|
137
|
-
|
138
|
-
* The private _*_dataset methods for associations (e.g.
|
139
|
-
_albums_dataset) have been removed.
|
140
|
-
|
141
|
-
* The private Dataset#offset_returns_row_number_column? method has
|
142
|
-
been removed.
|
143
|
-
|
144
|
-
* :conditions options for associations are now added to the
|
145
|
-
association dataset before the foreign key filters, instead of
|
146
|
-
after. This should have no effect unless you were introspecting
|
147
|
-
the dataset's opts or sql and acting on it.
|
148
|
-
|
149
|
-
* The added abilities in the columns_introspection plugin to use
|
150
|
-
cached schema for introspection can now cause it to return
|
151
|
-
incorrect results if the table's schema has changed since it was
|
152
|
-
cached by Sequel.
|
@@ -1,179 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Database#transaction now recognizes a :retry_on option, which
|
4
|
-
should contain an exception class or array of exception classes.
|
5
|
-
If the transaction raises one of the given exceptions, Sequel
|
6
|
-
will automatically retry the transaction block. It's a bad idea to
|
7
|
-
use this option if the transaction block is not idempotent.
|
8
|
-
|
9
|
-
By default, Sequel only retries the block 5 times by default,
|
10
|
-
to protect against infinite looping. You can change the number
|
11
|
-
of retries with the :num_retries option.
|
12
|
-
|
13
|
-
Users of the :disconnect=>:retry option are encouraged to switch
|
14
|
-
to :retry_on=>Sequel::DatabaseDisconnectError.
|
15
|
-
|
16
|
-
* Dataset#escape_like has been added for escaping LIKE
|
17
|
-
metacharacters. This is designed for the case where part of
|
18
|
-
the LIKE pattern is based on user input that should not treat the
|
19
|
-
metacharacters specially.
|
20
|
-
|
21
|
-
* Serialization failures/deadlocks are now raised as
|
22
|
-
Sequel::SerializationFailure exception instances. This exception
|
23
|
-
class is a good candidate for the transaction :retry_on option.
|
24
|
-
|
25
|
-
* On PostgreSQL, you can now provide the :force_standard_strings
|
26
|
-
and :client_min_messages Database options to override the defaults
|
27
|
-
on a per-instance basis.
|
28
|
-
|
29
|
-
* On PostgreSQL, Database#tables and #views now recognizes a
|
30
|
-
:qualify option, which if true will return qualified identifiers
|
31
|
-
instead of plain symbols.
|
32
|
-
|
33
|
-
* Transaction isolation levels are now supported on Oracle, DB2,
|
34
|
-
and all jdbc subadapters using the JDBC transaction support.
|
35
|
-
|
36
|
-
* Dataset.def_mutation_method now accepts a :module option for
|
37
|
-
the module in which to define the methods (defaulting to self).
|
38
|
-
|
39
|
-
* An unlimited_update plugin has been added. It's sole purpose is to
|
40
|
-
eliminate a MySQL warning in replicated environments, since by
|
41
|
-
default Sequel::Model uses a LIMIT clause when updating on MySQL.
|
42
|
-
|
43
|
-
* The named_timezones extension now adds a
|
44
|
-
Sequel.tzinfo_disambiguator accessor to automatically handle
|
45
|
-
TZInfo::AmbiguousTime exceptions. This should be a callable object
|
46
|
-
that accepts two arguments, a DateTime instance and an array of
|
47
|
-
timezone periods, and returns the timezone period to use.
|
48
|
-
|
49
|
-
= Other Improvements
|
50
|
-
|
51
|
-
* Sequel now handles JSON securely, specifying the
|
52
|
-
:create_additions=>false option when using JSON.parse. If you
|
53
|
-
really want to get the old vulnerable behavior back, override
|
54
|
-
Sequel.parse_json.
|
55
|
-
|
56
|
-
* The json_serializer and xml_serializer plugins are now secure
|
57
|
-
by default. Before, the default behavior of these plugins
|
58
|
-
allowed for round tripping, such that:
|
59
|
-
|
60
|
-
Album.from_xml(album.to_xml) == album
|
61
|
-
|
62
|
-
Unfortunately, that requires that the deserialization allow
|
63
|
-
the setting of any column. Since the plugins also handle
|
64
|
-
associations, you could also set any column in any associated
|
65
|
-
object, even cascading to associated objects of those objects.
|
66
|
-
|
67
|
-
The new default behavior only allows deserialization to set
|
68
|
-
the same columns that mass-assignment would set, and not to
|
69
|
-
handle associated objects at all by default. The following
|
70
|
-
additional options are supported:
|
71
|
-
|
72
|
-
:fields :: The specific fields to set (this was already supported
|
73
|
-
by the json_serializer plugin).
|
74
|
-
:associations :: The specific associations to handle.
|
75
|
-
:all_columns :: The previous behavior of setting all columns.
|
76
|
-
:all_associations :: The previous behavior of setting all
|
77
|
-
associations.
|
78
|
-
|
79
|
-
Since JSON parsing no longer deserializes into arbitrary ruby
|
80
|
-
instances, from_json and array_from_json class methods have been
|
81
|
-
added to the json_serializer plugin, for deserializing into model
|
82
|
-
instances. These mirror the from_xml and array_from_xml class
|
83
|
-
methods in the xml_serializer plugin.
|
84
|
-
|
85
|
-
Note that the :all_columns and :all_associations methods were
|
86
|
-
only added to make backwards compatibility easier. It is
|
87
|
-
likely they will be removed in Sequel 4, along with the
|
88
|
-
json_create class method.
|
89
|
-
|
90
|
-
* Sequel now attempts to use database specific error codes or
|
91
|
-
SQLState codes instead of regexp parsing to determine if a more
|
92
|
-
specific DatabaseError subclass should be used. This should make
|
93
|
-
error handling faster and more robust.
|
94
|
-
|
95
|
-
* Sequel now uses ESCAPE '\' when using LIKE, for similar behavior
|
96
|
-
across databases. Previously, no ESCAPE clause was used, so
|
97
|
-
behavior differed across databases, with most not using escaping,
|
98
|
-
and PostgreSQL, MySQL, and H2 defaulting to backslash as the escape
|
99
|
-
character.
|
100
|
-
|
101
|
-
* The query extension has been reimplemented and now uses a proxy
|
102
|
-
object instead of Object#extend.
|
103
|
-
|
104
|
-
* The :pool_timeout Database option now supports fractional seconds.
|
105
|
-
|
106
|
-
* Database#quote_identifier is now a public method.
|
107
|
-
|
108
|
-
* Metadata parsing (schema, indexes, foreign_key_list) on PostgreSQL
|
109
|
-
now correctly handles the case where an unqualified table name is
|
110
|
-
used and tables with that name exist in multiple schemas. It now
|
111
|
-
picks the first matching table in the schema_search_path, instead of
|
112
|
-
failing or returning results from all tables.
|
113
|
-
|
114
|
-
* Sequel::Model instances no longer attempt to typecast the money
|
115
|
-
type on PostgreSQL, since the previous typecast didn't work
|
116
|
-
correctly, and correct typecasting is locale-dependent.
|
117
|
-
|
118
|
-
* Sequel no longer picks up foreign keys for tables in other
|
119
|
-
databases when using Database#foreign_key_list on MySQL.
|
120
|
-
|
121
|
-
* A warning when using the mysql2 3.12 beta has been eliminated.
|
122
|
-
|
123
|
-
* A warning has been eliminated when using the jdbc/oracle adapter
|
124
|
-
on JRuby 1.7.
|
125
|
-
|
126
|
-
* Sequel's ilike emulation should now work by default on databases
|
127
|
-
without specific syntax support.
|
128
|
-
|
129
|
-
* Dataset#from_self! no longer creates a self referential dataset.
|
130
|
-
|
131
|
-
* Coverage testing now uses simplecov instead of rcov on ruby 1.9+.
|
132
|
-
|
133
|
-
= Backwards Compatibility
|
134
|
-
|
135
|
-
* The switch to using JSON.parse :create_additions=>false means
|
136
|
-
that if your app expected JSON to deserialize into arbitrary
|
137
|
-
ruby objects, it is probably broken. You should update your
|
138
|
-
application code to manually convert the deserialized hashes
|
139
|
-
into the ruby objects you want.
|
140
|
-
|
141
|
-
Note that it's not just this new version of Sequel that will
|
142
|
-
cause that, older versions of Sequel will break in the same
|
143
|
-
way if you update your JSON library to a version that is not
|
144
|
-
vulnerable by default.
|
145
|
-
|
146
|
-
This potentially affects the pg_json extension and serialization
|
147
|
-
plugin if you were expecting the JSON stored in the database
|
148
|
-
to be deserialized into arbitrary ruby objects.
|
149
|
-
|
150
|
-
See the json_serializer/xml_serializer changes mentioned in
|
151
|
-
the Other Improvements section.
|
152
|
-
|
153
|
-
* The reimplemented query extension is not completely backwards
|
154
|
-
compatible. For example, inside a query block, self refers to the
|
155
|
-
proxy object instead of a dataset, and calling methods that return
|
156
|
-
rows no longer raises an exception.
|
157
|
-
|
158
|
-
* The metadata parsing methods on PostgreSQL no longer work with
|
159
|
-
unqualified tables where the table is not in the schema search
|
160
|
-
path. This makes metadata parsing consistent with how datasets
|
161
|
-
operate. For tables outside the schema search path, you must
|
162
|
-
qualify it before use now.
|
163
|
-
|
164
|
-
Additionally, using a nonexistent table name will raise an
|
165
|
-
exception instead of returning empty results in some cases.
|
166
|
-
|
167
|
-
* The Dataset#def_mutation_method instance method has been removed.
|
168
|
-
This method added mutation methods directly on the dataset instance,
|
169
|
-
which is generally not desired. Using the def_mutation_method class
|
170
|
-
method with the :module option is now the recommended approach.
|
171
|
-
|
172
|
-
* The switch to using ESCAPE for LIKE characters is backwards
|
173
|
-
incompatible on databases that don't use escaping by default,
|
174
|
-
when backslash is used in a LIKE pattern as a regular character.
|
175
|
-
Now you have to double the backslash in the pattern.
|
176
|
-
|
177
|
-
* Database#database_error_regexps private method now can return any
|
178
|
-
enumerable yielding regexp/exception class pairs, it is no longer
|
179
|
-
specified to return a hash.
|