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,226 +0,0 @@
|
|
1
|
-
= Performance Enhancements
|
2
|
-
|
3
|
-
* Dataset literalization for simple datasets is now faster by
|
4
|
-
creating a per-adapter SQL literalization method instead of
|
5
|
-
having all adapters share a generic method with higher overhead.
|
6
|
-
Sequel.split_symbol now caches results globally. Symbol
|
7
|
-
literalization is now cached per Database.
|
8
|
-
|
9
|
-
Combining these three optimizations, here are the performance
|
10
|
-
increases compared to 4.9.0 for a couple example datasets:
|
11
|
-
|
12
|
-
ds1 = DB[:a]
|
13
|
-
ds2 = DB[:a].select(:a, :b).where(:c=>1).order(:d, :e)
|
14
|
-
|
15
|
-
.sql .all (1 row)
|
16
|
-
ds1 140% 11%
|
17
|
-
ds2 187% 32%
|
18
|
-
|
19
|
-
* Regular association loading now uses a placeholder literalizer
|
20
|
-
in most cases, for up to an 85% improvement when loading
|
21
|
-
simple associations.
|
22
|
-
|
23
|
-
* Eager loading associations using Dataset#eager now uses a
|
24
|
-
placeholder literalizer in most cases, for up to a
|
25
|
-
20% improvement when eager loading simple associations.
|
26
|
-
|
27
|
-
* Eager loading associations with limits using Dataset#eager now
|
28
|
-
uses a UNION-based strategy by default. After extensive
|
29
|
-
testing, this was found to be the fastest strategy if the
|
30
|
-
key columns are indexed. Unfortunately, it is a much slower
|
31
|
-
strategy if the key columns are not indexed. You can override
|
32
|
-
the default UNION strategy by using the :eager_limit_strategy
|
33
|
-
association option.
|
34
|
-
|
35
|
-
On some databases, execution time of UNION queries with n subqueries
|
36
|
-
increases faster than O(n). Also, there are limits on the number of
|
37
|
-
subqueries supported in a single UNION query. Sequel chooses a
|
38
|
-
default limit of 40 subqueries per UNION query. You can increase
|
39
|
-
this via the :subqueries_per_union association option.
|
40
|
-
|
41
|
-
* Dataset#import and #multi_insert can now insert multiple rows
|
42
|
-
in a single query on H2, HSQLDB, Derby, SQLAnywhere, CUBRID,
|
43
|
-
SQLite, Oracle, DB2, and Firebird, which should be significantly
|
44
|
-
faster than previous versions that issued a separate INSERT query
|
45
|
-
per row.
|
46
|
-
|
47
|
-
* The many_to_many setter method in the association_pks plugin now
|
48
|
-
uses Dataset#import to insert many rows at once, instead of using
|
49
|
-
a seperate query per insert.
|
50
|
-
|
51
|
-
* The jdbc adapter's type conversion has been rewritten to be
|
52
|
-
more similar to the other adapters, setting up the type
|
53
|
-
conversion procs before iterating over results. This increases
|
54
|
-
performance up to 20%.
|
55
|
-
|
56
|
-
* The jdbc/oracle adapter now defaults to a fetch_size of 100,
|
57
|
-
similar to the oci8-based oracle adapter, significantly improving
|
58
|
-
performance for large datasets.
|
59
|
-
|
60
|
-
= New Features
|
61
|
-
|
62
|
-
* Database#transaction now supports an :auto_savepoint option. This
|
63
|
-
option makes it so that transactions inside the transaction block
|
64
|
-
automatically use savepoints unless they use the :savepoint=>false
|
65
|
-
option. This should make testing transactional behavior easier.
|
66
|
-
|
67
|
-
* Model.prepared_finder has been added. This has an API similar to
|
68
|
-
Model.finder, but it uses a prepared statement instead of a
|
69
|
-
placeholder literalizer. It is less flexible than Model.finder
|
70
|
-
as prepared statements have fixed SQL, but it may perform better.
|
71
|
-
|
72
|
-
* Common table expressions (WITH clauses) are now supported on SQLite
|
73
|
-
3.8.3+.
|
74
|
-
|
75
|
-
* :correlated_subquery has been added as an eager_graph and filter by
|
76
|
-
association limit strategy for one_to_one and one_to_many
|
77
|
-
associations. In certain cases it was found that this is faster
|
78
|
-
than the :window_function limit strategy. It is the default
|
79
|
-
filter by associations limit strategy on databases that do not
|
80
|
-
support window functions.
|
81
|
-
|
82
|
-
Filtering by limited associations using a correlated subquery
|
83
|
-
strategy does not work in all cases, but it should handle most
|
84
|
-
cases correctly.
|
85
|
-
|
86
|
-
* The prepared_statement_associations plugin now handles
|
87
|
-
one_through_one and one_through_many associations.
|
88
|
-
|
89
|
-
* Sequel now emulates support for offsets without limits on MySQL,
|
90
|
-
SQLite, H2, SQLAnywhere, and CUBRID.
|
91
|
-
|
92
|
-
* In the jdbc adapter, the Database#fetch_size accessor and
|
93
|
-
:fetch_size option can be used to automatically set the JDBC
|
94
|
-
fetch size for JDBC Statement objects created by the database.
|
95
|
-
|
96
|
-
* Dataset#with_fetch_size has been added to jdbc adapter datasets,
|
97
|
-
setting the fetch size to use on ResultSets generated by the
|
98
|
-
dataset. This generally has the effect of overriding the
|
99
|
-
Database fetch_size setting.
|
100
|
-
|
101
|
-
* On MySQL 5.6.5+, Sequel supports a :fractional_seconds Database
|
102
|
-
option, which will use fractional seconds for timestamp values,
|
103
|
-
and have the schema modification code create timestamp columns
|
104
|
-
that accept fractional timestamps by default.
|
105
|
-
|
106
|
-
* Database#call_mssql_sproc on Microsoft SQL Server now handles named
|
107
|
-
parameters:
|
108
|
-
|
109
|
-
DB.call_mssql_sproc(:sproc_name, :args => {
|
110
|
-
'input_arg1_name' => 'input arg1 value',
|
111
|
-
'input_arg2_name' => 'input arg2 value',
|
112
|
-
'output_arg_name' => [:output, 'int', 'result key name']
|
113
|
-
})
|
114
|
-
|
115
|
-
* Database#drop_view now supports an :if_exists option on SQLite,
|
116
|
-
MySQL, H2, and HSQLDB.
|
117
|
-
|
118
|
-
* Database#drop_table now supports an :if_exists option on HSQLDB.
|
119
|
-
|
120
|
-
* A :filter_limit_strategy association option has been added, for
|
121
|
-
choosing the strategy that will be used when filtering/excluding by
|
122
|
-
associations with limits. For backwards compatibility, Sequel will
|
123
|
-
fallback to looking at the :eager_limit_strategy option.
|
124
|
-
|
125
|
-
* A :server_version Database option is now supported on Microsoft SQL
|
126
|
-
Server, which will use the value given instead of querying for it.
|
127
|
-
|
128
|
-
= Other Improvements
|
129
|
-
|
130
|
-
* Dataset::PlaceholderLiteralizer arguments are how handled
|
131
|
-
correctly when emulating offsets via the row_number window function
|
132
|
-
on DB2, MSSQL <=2012, and Oracle.
|
133
|
-
|
134
|
-
* Dataset::PlaceholderLiteralizer now handles DelayedEvaluation
|
135
|
-
objects correctly.
|
136
|
-
|
137
|
-
* Offset emulation is skipped if static SQL is used on Access,
|
138
|
-
DB2, and MSSQL <=2008.
|
139
|
-
|
140
|
-
* Additional disconnect errors are now recognized in the postgres
|
141
|
-
adapter.
|
142
|
-
|
143
|
-
* The :foreign_key_constraint_name option is now respected when
|
144
|
-
adding a foreign key column to an existing table on MySQL.
|
145
|
-
|
146
|
-
* Sequel now attempts to work around a bug on MySQL 5.6+ when
|
147
|
-
combining DROP FOREIGN KEY and DROP INDEX in the same ALTER TABLE
|
148
|
-
statement.
|
149
|
-
|
150
|
-
* Dataset#for_update is now respected on H2.
|
151
|
-
|
152
|
-
* Timestamp with local time zone types are now returned as
|
153
|
-
Time/DateTime objects on jdbc/oracle.
|
154
|
-
|
155
|
-
* Model.include now has the same API as Module.include.
|
156
|
-
|
157
|
-
* Model#marshallable! now works correctly when using the
|
158
|
-
tactical_eager_loading plugin.
|
159
|
-
|
160
|
-
* The pg_array_associations plugin now attempts to automatically
|
161
|
-
determine the correct array type to use, and explicitly casts
|
162
|
-
to that array type in more places.
|
163
|
-
|
164
|
-
* The auto_validations plugin now handles models that select from
|
165
|
-
subqueries.
|
166
|
-
|
167
|
-
* The association_pks plugin does no longer creates getter and setter
|
168
|
-
methods for one_through_one associations.
|
169
|
-
|
170
|
-
* bin/sequel now uses the Sequel code in the related lib directory.
|
171
|
-
This makes it easier to use from a repository checkout.
|
172
|
-
|
173
|
-
= Backwards Compatibility
|
174
|
-
|
175
|
-
* AssociationReflection#associated_dataset now returns a joined
|
176
|
-
dataset for associations that require joins (e.g. many_to_many).
|
177
|
-
Anyone using this directly for associations that require joins
|
178
|
-
probably needs to update their code.
|
179
|
-
|
180
|
-
* Model.associate now adds the association instance methods instead
|
181
|
-
of relying on the def_#{association_type} method doing so. Anyone
|
182
|
-
using custom association types probably needs to update their code.
|
183
|
-
|
184
|
-
* Model.eager_loading_dataset, .apply_association_dataset_opts, and
|
185
|
-
.def_{add_method,association_dataset_methods,remove_methods}
|
186
|
-
are now deprecated.
|
187
|
-
|
188
|
-
* Key conditions for associations requiring joins have been moved
|
189
|
-
from the JOIN ON clause to the WHERE clause. This should be
|
190
|
-
optimized the same by the database, but it can break tests that
|
191
|
-
expect specific SQL.
|
192
|
-
|
193
|
-
* Dataset#_insert_sql and #_update_sql are now private instead of
|
194
|
-
protected.
|
195
|
-
|
196
|
-
* The install/uninstall rake tasks have been removed.
|
197
|
-
|
198
|
-
* Model association and association reflection internals have
|
199
|
-
changed significantly, if you were relying on them, you'll
|
200
|
-
probably need to update your code.
|
201
|
-
|
202
|
-
* Database transaction internals have changed significantly, if you
|
203
|
-
were relying on them, you'll probably need to update your code.
|
204
|
-
|
205
|
-
* Dataset literalization internals have changed significantly, with
|
206
|
-
the Dataset#*_clause_methods private methods being removed.
|
207
|
-
Custom adapters that used these methods should switch to using the
|
208
|
-
new Dataset.def_sql_method method.
|
209
|
-
|
210
|
-
* Common table expressions are no longer enabled by default in
|
211
|
-
Sequel. External adapters for databases that support common
|
212
|
-
table expressions should define Dataset#supports_cte?(type) to
|
213
|
-
return true.
|
214
|
-
|
215
|
-
* Support for RETURNING is no longer determined via introspection.
|
216
|
-
External adapters for databases that support RETURNING should
|
217
|
-
define Dataset#supports_returning?(type) to return true.
|
218
|
-
|
219
|
-
* The new jdbc adapter type conversion code may not be completely
|
220
|
-
compatible with the previous code. The currently known case
|
221
|
-
where it is different is on jdbc/postgresql, when using an
|
222
|
-
array type where no conversion proc exists, the returned object
|
223
|
-
will be a ruby array containing java objects, instead of a ruby
|
224
|
-
array containing ruby objects. It is recommended that
|
225
|
-
jdbc/postgresql users using array types use the pg_array extension
|
226
|
-
to avoid this issue.
|
@@ -1,147 +0,0 @@
|
|
1
|
-
= New SQL Function Features
|
2
|
-
|
3
|
-
* SQL::Function now supports an options hash for functions.
|
4
|
-
Unfortunately, since SQL::Function#initialize does not support
|
5
|
-
an options hash, you need to use SQL::Function.new! to create
|
6
|
-
a function with an options hash. You can also call methods on
|
7
|
-
the SQL::Function instance, which will return a new SQL::Function
|
8
|
-
with the appropriate option set.
|
9
|
-
|
10
|
-
* SQL::Function#quoted has been added, which will return a new
|
11
|
-
SQL::Function instance that will quote the function name (if
|
12
|
-
the database supports quoting function names).
|
13
|
-
|
14
|
-
* SQL::Function#unquoted has been added, which will return a new
|
15
|
-
SQL::Function instance that will not quote the function name.
|
16
|
-
|
17
|
-
* SQL::Function#lateral has been added, which will return a new
|
18
|
-
SQL::Function instance that will be preceded by LATERAL when
|
19
|
-
literalized, useful for set-returning functions.
|
20
|
-
|
21
|
-
* SQL::Function#within_group has been added, for creating
|
22
|
-
ordered-set and hypothetical-set functions that use WITHIN GROUP.
|
23
|
-
|
24
|
-
* SQL::Function#filter has been added, for creating filtered
|
25
|
-
aggregate function calls using FILTER.
|
26
|
-
|
27
|
-
* SQL::Function#with_ordinality has been added, for creating set
|
28
|
-
returning functions that also include a row number for every
|
29
|
-
row in the set, using WITH ORDINALITY.
|
30
|
-
|
31
|
-
= New PostgreSQL Features
|
32
|
-
|
33
|
-
* The jsonb type added in 9.4 is now supported in the pg_json
|
34
|
-
extension. To create a jsonb type manually, you need to call
|
35
|
-
Sequel.pg_jsonb.
|
36
|
-
|
37
|
-
The new json and jsonb functions and operators added in 9.4 are
|
38
|
-
now supported in the pg_json_ops extension. You can use the jsonb
|
39
|
-
functions and operators by creating a Postgres::JSONBOp using
|
40
|
-
Sequel.pg_jsonb_op.
|
41
|
-
|
42
|
-
* Database#full_text_search now takes a :rank option to order by the
|
43
|
-
ranking.
|
44
|
-
|
45
|
-
* Database#refresh_view now supports a :concurrently option, to
|
46
|
-
refresh a materialized view concurrently, supported on 9.4+.
|
47
|
-
|
48
|
-
* Postgres::ArrayOp#cardinality has been added to the pg_array_ops
|
49
|
-
extension, for easy use of the cardinality method added in 9.4.
|
50
|
-
|
51
|
-
* Postgres::ArrayOp#unnest in the pg_array_ops extension now accepts
|
52
|
-
arguments. PostgreSQL 9.4+ supports this if unnest is used in the
|
53
|
-
FROM clause.
|
54
|
-
|
55
|
-
= Other New Features
|
56
|
-
|
57
|
-
* Sequel now supports derived column lists (table aliases that include
|
58
|
-
column aliases) via Sequel.as and SQL::AliasedMethods#as:
|
59
|
-
|
60
|
-
Sequel.as(:table, :alias, [:c1, :c2])
|
61
|
-
# table AS alias(c1, c2)
|
62
|
-
|
63
|
-
Not all databases support this, but it is in SQL92 and Sequel now
|
64
|
-
supports it by default. Derived column lists make it easier to
|
65
|
-
alias columns when using set-returning functions.
|
66
|
-
|
67
|
-
Dataset#from_self now supports derived column lists via the new
|
68
|
-
:column_aliases option (which requires the :alias option to take
|
69
|
-
effect).
|
70
|
-
|
71
|
-
* Database#create_view now supports a :check option, to use
|
72
|
-
WITH CHECK OPTION. You can also use :check=>:local for
|
73
|
-
WITH LOCAL CHECK OPTION. These clauses make it so when you are
|
74
|
-
inserting into/updating the view, you can only modify rows in the
|
75
|
-
underlying table if the result would be returned by the view.
|
76
|
-
|
77
|
-
* The :after_connect Database option proc now can accept two
|
78
|
-
arguments. If the arity of the proc is 2, Sequel will pass both
|
79
|
-
the connection object and the shard symbol.
|
80
|
-
|
81
|
-
* The class_table_inheritance plugin now supports a :model_map
|
82
|
-
option similar to the single_table_inheritance plugin, allowing
|
83
|
-
use of the plugin without storing ruby class names in the database.
|
84
|
-
Note that if you use this option, you must set the correct value
|
85
|
-
for the kind column manually when creating the row.
|
86
|
-
|
87
|
-
* Support for CUBRID/SQLAnywhere emulation has been added to the
|
88
|
-
mock adapter.
|
89
|
-
|
90
|
-
= Other Improvements
|
91
|
-
|
92
|
-
* Dataset#import now supports a default slice size, which Sequel
|
93
|
-
sets to 500 on SQLite as that is the limit that SQLite supports in
|
94
|
-
a single statement.
|
95
|
-
|
96
|
-
* The serialization plugin now only modifies changed_columns in the
|
97
|
-
setter method if the deserialized value has changed, similar to
|
98
|
-
how Sequel's standard column setters work. Note that if you are
|
99
|
-
mutating the deserialized value (i.e. not calling the setter
|
100
|
-
method), you still need to use the
|
101
|
-
serialization_modification_detection plugin.
|
102
|
-
|
103
|
-
* Plugins that set column values for new objects before creation now
|
104
|
-
use before_validation instead of before_create, which works better
|
105
|
-
when the auto_validations plugin is used.
|
106
|
-
|
107
|
-
* The :read_only transaction option is now applied per-savepoint on
|
108
|
-
PostgreSQL. Note that this allows you to have a READ ONLY
|
109
|
-
savepoint in a READ WRITE transaction, it does not allow you to
|
110
|
-
have a READ WRITE savepoint in a READ ONLY transaction.
|
111
|
-
|
112
|
-
* In the ibm_db adapter, fix warnings when using certain column names.
|
113
|
-
|
114
|
-
* Support connecting to a DB2 catalog name in the ibm_db adapter, by
|
115
|
-
providing a :database option without a :host or :port option.
|
116
|
-
|
117
|
-
* The mock adapter now sets an emulated version when using MySQL and
|
118
|
-
SQLite. Additionally, the emulated version for PostgreSQL and
|
119
|
-
Microsoft SQL Server has been updated.
|
120
|
-
|
121
|
-
= Backwards Compatibility
|
122
|
-
|
123
|
-
* External adapters that override Dataset#as_sql_append now need to
|
124
|
-
have the method accept two arguments.
|
125
|
-
|
126
|
-
* Model.eager_loading_dataset, .apply_association_dataset_opts, and
|
127
|
-
.def_{add_method,association_dataset_methods,remove_methods} have
|
128
|
-
been removed (they were deprecated in 4.10.0).
|
129
|
-
|
130
|
-
* SQL::WindowFunction and SQL::EmulatedFunction classes are now
|
131
|
-
deprecated, as well as Dataset methods that literalize instances of
|
132
|
-
these classes. These classes are replaced by using options on
|
133
|
-
SQL::Function instances.
|
134
|
-
|
135
|
-
* Passing a table_alias argument when creating an SQL::JoinClause
|
136
|
-
manually is no longer supported. You now need to pass the table as
|
137
|
-
an SQL::AliasedExpression if the table needs to be aliased.
|
138
|
-
|
139
|
-
* ASTTransformer no longer transforms the table alias for
|
140
|
-
SQL::JoinClause. This is for consistency with
|
141
|
-
SQL::AliasedExpression.
|
142
|
-
|
143
|
-
* SQL standard casts are now used in Database#full_text_search, which
|
144
|
-
can break tests that expect specific SQL.
|
145
|
-
|
146
|
-
* The to_dot extension now uses slightly different output for
|
147
|
-
SQL::Function and SQL::JoinClause instances.
|
@@ -1,105 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Database#schema now includes :max_length entries for string
|
4
|
-
columns, specifying the size of the string field. The
|
5
|
-
auto_validations plugin now uses this information to
|
6
|
-
automatically set up max_length validations on those fields.
|
7
|
-
|
8
|
-
* The Dataset join methods now support a :reset_implicit_qualifier
|
9
|
-
option. If set to false, this makes the join not reset the
|
10
|
-
implicit qualifier, so that the next join will not consider this
|
11
|
-
table as the last table joined. Example:
|
12
|
-
|
13
|
-
DB[:a].join(:b, :c=>:d).
|
14
|
-
join(:e, :f=>:g)
|
15
|
-
# SELECT * FROM a
|
16
|
-
# INNER JOIN b ON (b.c = a.d)
|
17
|
-
# INNER JOIN e ON (e.f = b.g)
|
18
|
-
|
19
|
-
DB[:a].join(:b, {:c=>:d}, :reset_implicit_qualifier=>false).
|
20
|
-
join(:e, :f=>:g)
|
21
|
-
# SELECT * FROM a
|
22
|
-
# INNER JOIN b ON (b.c = a.d)
|
23
|
-
# INNER JOIN e ON (e.f = a.g)
|
24
|
-
|
25
|
-
* The Dataset cross and natural join methods now accept an options
|
26
|
-
hash. Example:
|
27
|
-
|
28
|
-
DB[:a].cross_join(:b, :table_alias=>:c)
|
29
|
-
# SELECT * FROM a CROSS JOIN b AS c
|
30
|
-
|
31
|
-
* Model#set_nested_attributes has been added to the nested_attributes
|
32
|
-
plugin, which allows you to to set the nested_attributes options to
|
33
|
-
use per-call. This is very helpful if you have multiple forms that
|
34
|
-
handle associated objects, but with different input fields used
|
35
|
-
for the associated objects depending on the form. Example:
|
36
|
-
|
37
|
-
album.set_nested_attributes(:tracks,
|
38
|
-
params[:track_attributes],
|
39
|
-
:fields=>[:a, :b, :c])
|
40
|
-
|
41
|
-
* Database#values has been added on PostgreSQL, which creates a
|
42
|
-
dataset that uses VALUES instead of SELECT. Just as PostgreSQL
|
43
|
-
allows, you can also use orders, limits, and offsets with this
|
44
|
-
dataset.
|
45
|
-
|
46
|
-
* A :notice_receiver option is now supported in the postgres adapter
|
47
|
-
if the pg driver is used. This should be a proc, which will be
|
48
|
-
passed to the pg connection's set_notice_receiver method.
|
49
|
-
|
50
|
-
* A Database :readonly option is now supported in the sqlite adapter,
|
51
|
-
which opens the database in a read-only mode, causing an error
|
52
|
-
if a query is issued that would modify the database.
|
53
|
-
|
54
|
-
* A :before_thread_exit option has been added to
|
55
|
-
Database#listen_for_static_cache_updates in the
|
56
|
-
pg_static_cache_updater extension, allowing you to run code before
|
57
|
-
the created thread exits.
|
58
|
-
|
59
|
-
= Other Improvements
|
60
|
-
|
61
|
-
* Eager loading limited associations using a UNION now works
|
62
|
-
correctly when an association block is used. This fixes a
|
63
|
-
regression that first occurred in 4.10.0, when the union
|
64
|
-
eager loader became the default eager loader.
|
65
|
-
|
66
|
-
* When creating a new associated object in the nested_attributes
|
67
|
-
plugin, where the reciprocal association is a many_to_one
|
68
|
-
association, set the cached reciprocal object in the new
|
69
|
-
associated object before saving it.
|
70
|
-
|
71
|
-
This fixes issues when validations in the associated object
|
72
|
-
require access to the current object, which may not yet be
|
73
|
-
saved in the database.
|
74
|
-
|
75
|
-
* The prepared_statements and prepared_statements_associations
|
76
|
-
plugins now automatically use explicit column references when
|
77
|
-
preparing statements. This fixes issues on PostgreSQL when a
|
78
|
-
column is added to a table while a prepared statement exists
|
79
|
-
that selects * from the table. Previously, all further attempts
|
80
|
-
to use the prepared statement will fail.
|
81
|
-
|
82
|
-
This allows you to run migrations that add columns to tables
|
83
|
-
while concurrently running an application that uses the
|
84
|
-
prepared statements plugins. Note that many other schema
|
85
|
-
modifications can cause issues when running migrations
|
86
|
-
while concurrently running an application, but most of those
|
87
|
-
are not specific to usage of prepared statements.
|
88
|
-
|
89
|
-
* Dataset#insert_select on PostgreSQL now respects an existing
|
90
|
-
RETURNING clause, and won't override it to use RETURNING *.
|
91
|
-
|
92
|
-
A similar fix was applied to the generalized prepared statements
|
93
|
-
support as well.
|
94
|
-
|
95
|
-
* The interval parser in the pg_interval extension now supports
|
96
|
-
intervals with 2-10 digits for hours. Previously, it only
|
97
|
-
supported using 2 digits for hours.
|
98
|
-
|
99
|
-
= Backwards Compatibility
|
100
|
-
|
101
|
-
* The methods and classes deprecated in 4.11.0 have been removed.
|
102
|
-
|
103
|
-
* The nested_attributes internal API has changed significantly. If
|
104
|
-
you were calling any private nested_attributes methods, you'll
|
105
|
-
probably need to update your code.
|
@@ -1,169 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A modification_detection plugin has been added, for automatic
|
4
|
-
detection of in-place column value modifications. This makes
|
5
|
-
it so you don't have to call Model#modified! manually when
|
6
|
-
changing a value in place.
|
7
|
-
|
8
|
-
* A column_select plugin has been added, for automatically
|
9
|
-
selecting explicitly qualified columns in model datasets.
|
10
|
-
Example:
|
11
|
-
|
12
|
-
Sequel::Model.plugin :column_select
|
13
|
-
class Album < Sequel::Model
|
14
|
-
end
|
15
|
-
Album.dataset.sql
|
16
|
-
# SELECT albums.id, albums.name, albums.artist_id
|
17
|
-
# FROM albums
|
18
|
-
|
19
|
-
* An insert_returning_select plugin has been added, for automatically
|
20
|
-
setting up RETURNING clauses for models that select explicit
|
21
|
-
columns. This is useful when using the column_select or
|
22
|
-
lazy_attributes plugins.
|
23
|
-
|
24
|
-
* A pg_enum extension has been added, for easier dealing with
|
25
|
-
PostgreSQL enum types. The possible values for the type
|
26
|
-
are then returned in the schema hashes under the :enum_values
|
27
|
-
key. It also adds create_enum, drop_enum, and add_enum_value
|
28
|
-
Database methods for migration support.
|
29
|
-
|
30
|
-
* A round_timestamps extension has been added, for automatically
|
31
|
-
rounding timestamps to database supported precision when
|
32
|
-
literalizing.
|
33
|
-
|
34
|
-
* A dataset_source_alias extension has been added, for automatically
|
35
|
-
aliasing datasets to their first source, instead of using t1, t2.
|
36
|
-
Example:
|
37
|
-
|
38
|
-
DB.from(:a, DB[:b]).sql
|
39
|
-
# SELECT * FROM a, (SELECT * FROM b) AS t1
|
40
|
-
|
41
|
-
DB.extension(:dataset_source_alias)
|
42
|
-
DB.from(:a, DB[:b]).sql
|
43
|
-
# SELECT * FROM a, (SELECT * FROM b) AS b
|
44
|
-
|
45
|
-
* On Microsoft SQL Server, Sequel now emulates RETURNING support
|
46
|
-
using the OUTPUT clause, as long as only simple column references
|
47
|
-
are used.
|
48
|
-
|
49
|
-
= Other Improvements
|
50
|
-
|
51
|
-
* A regression has been fixed in the timestamps and table
|
52
|
-
inheritance plugins, where column values would not be
|
53
|
-
saved when skipping validations. This was first broken in
|
54
|
-
4.11.0.
|
55
|
-
|
56
|
-
* A regression has been fixed on JRuby and Rubinius when using
|
57
|
-
Sequel::Model(dataset) if the dataset needs to literalize a
|
58
|
-
symbol (and most do). This was first broken in 4.10.0.
|
59
|
-
|
60
|
-
* Primary keys are now automatically setup for models even if
|
61
|
-
the models select specific columns.
|
62
|
-
|
63
|
-
* The lazy_attributes plugin now uses qualified columns in its
|
64
|
-
selection, instead of unqualified columns.
|
65
|
-
|
66
|
-
* When looking up model instances by primary key, Sequel now uses a
|
67
|
-
qualified primary key if the model uses a joined dataset.
|
68
|
-
|
69
|
-
* For associations that require joins, Sequel will now use the
|
70
|
-
associated model's selection directly (instead of
|
71
|
-
associated_table.*) if the associated model's selection consists
|
72
|
-
solely of qualified columns.
|
73
|
-
|
74
|
-
Among other things, this means that a many_to_many association to
|
75
|
-
a model that uses lazy attributes will not eagerly load the lazy
|
76
|
-
attributes by default.
|
77
|
-
|
78
|
-
* Model#save now uses insert_select if there is an existing
|
79
|
-
RETURNING clause used by the underlying dataset, even if the model
|
80
|
-
selects specific columns.
|
81
|
-
|
82
|
-
* In Dataset#insert, aliased tables are now automatically unaliased.
|
83
|
-
This allows you to use a dataset with an aliased table and have
|
84
|
-
full SELECT/INSERT/UPDATE/DELETE support, assuming the database
|
85
|
-
supports aliased tables in UPDATE and DELETE.
|
86
|
-
|
87
|
-
* Dataset#graph now qualifies columns correctly if the current
|
88
|
-
dataset is a joined dataset and it moves the current dataset to
|
89
|
-
a subselect.
|
90
|
-
|
91
|
-
* Dataset#joined_dataset? is now a public method, and can be used to
|
92
|
-
determine whether the dataset uses a join, either explicitly via
|
93
|
-
JOIN or implicitly via multiple FROM tables.
|
94
|
-
|
95
|
-
* The Dataset#unqualified_column_for helper method has been added,
|
96
|
-
returning the unqualified version of a possibly qualified column.
|
97
|
-
|
98
|
-
* The composition and serialization plugins now support validations
|
99
|
-
on the underlying columns. Previously, they didn't update the
|
100
|
-
underlying columns until after validations were performed. This
|
101
|
-
works better when using the auto_validations plugin.
|
102
|
-
|
103
|
-
* The class_table_inheritance plugin now uses JOIN ON instead of
|
104
|
-
JOIN USING, which makes it work on all databases that Sequel
|
105
|
-
supports. Additionally, the plugin now explicitly selects
|
106
|
-
qualified columns from all of the tables.
|
107
|
-
|
108
|
-
* The list plugin now adds an after_destroy hook that will renumber
|
109
|
-
rows after the current row, similar to how moving existing values
|
110
|
-
in the list works.
|
111
|
-
|
112
|
-
* The pg_json extension is now faster when json column value is a
|
113
|
-
plain string, number, true, false, or nil, if the underlying json
|
114
|
-
library handles such values natively.
|
115
|
-
|
116
|
-
* External jdbc, odbc, and do subadapters can now be loaded
|
117
|
-
automatically without requiring them first, assuming proper
|
118
|
-
support in the external subadapter.
|
119
|
-
|
120
|
-
* When using create_table on MySQL, correctly handle the :key
|
121
|
-
option to when calling foreign_key with a column reference.
|
122
|
-
|
123
|
-
* On Oracle, use all_tab_cols instead of user_tab_cols for getting
|
124
|
-
default values when parsing the schema. This makes it work if the
|
125
|
-
user does not own the table.
|
126
|
-
|
127
|
-
* On Oracle, use all_tables and all_views for Database#tables and
|
128
|
-
Database#views. This works better for users with limited rights.
|
129
|
-
|
130
|
-
* Additional disconnect errors are now recognized in the postgres and
|
131
|
-
jdbc/mysql adapters.
|
132
|
-
|
133
|
-
* Sequel::Model now uses copy constructors (e.g. initialize_copy)
|
134
|
-
instead of overriding #dup and #clone.
|
135
|
-
|
136
|
-
* The rake default task now runs plugin specs in addition to
|
137
|
-
core and model specs.
|
138
|
-
|
139
|
-
= bin/sequel Improvements
|
140
|
-
|
141
|
-
* Add the sequel lib directory to the front of the load path
|
142
|
-
instead of the end, fixing cases where you end up requiring an
|
143
|
-
old version of the sequel gem (e.g. by using sequel_pg).
|
144
|
-
|
145
|
-
* Add the sequel lib directory as an absolute path, fixing cases
|
146
|
-
where you later change the current directory.
|
147
|
-
|
148
|
-
* Require sequel later in the code, so that bin/sequel -h doesn't
|
149
|
-
need to require sequel, and full backtrace is not printed if
|
150
|
-
requiring sequel raises an error (unless -t is used).
|
151
|
-
|
152
|
-
* If an exception is raised, put a newline between the exception
|
153
|
-
message and backtrace.
|
154
|
-
|
155
|
-
* Don't allow usage of -C with any of -cdDmS.
|
156
|
-
|
157
|
-
* If sequel -v is given along with a database or code string to
|
158
|
-
execute, print the Sequel version but also continue, similar
|
159
|
-
to how ruby -v works.
|
160
|
-
|
161
|
-
= Backwards Compatibility
|
162
|
-
|
163
|
-
* The switch from JOIN ON to JOIN USING in the
|
164
|
-
class_table_inheritance can break certain usage, such as querying
|
165
|
-
using unqualified primary key. Users should switch to using a
|
166
|
-
qualified primary key instead.
|
167
|
-
|
168
|
-
* Calling Dataset#returning when the underlying database does not
|
169
|
-
support it now raises an Error.
|