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,135 +0,0 @@
|
|
1
|
-
= Dataset Literalization Refactoring
|
2
|
-
|
3
|
-
* As warned about in the 3.29.0 release notes, dataset literalization
|
4
|
-
has been completely refactored. It now uses an append-only design
|
5
|
-
which is faster in all cases, about twice as fast for large objects
|
6
|
-
and deeply nested structures, and over two orders of magnitude
|
7
|
-
faster in some pathological cases.
|
8
|
-
|
9
|
-
This change should not affect applications, but may affect custom
|
10
|
-
extensions or adapters that dealt with literalization of objects.
|
11
|
-
Most literalization methods now have a method with an _append
|
12
|
-
suffix that does the actual literalization, which takes the sql
|
13
|
-
string to append to as the first argument. If you were overriding
|
14
|
-
a literalization method, you now probably need to override the
|
15
|
-
_append version instead. If you have this literalization method:
|
16
|
-
|
17
|
-
def foo_sql(bar)
|
18
|
-
"BAR #{literal(bar.baz)}"
|
19
|
-
end
|
20
|
-
|
21
|
-
You need to change the code to:
|
22
|
-
|
23
|
-
def foo_sql_append(sql, bar)
|
24
|
-
sql << "BAR "
|
25
|
-
literal_append(sql, bar.baz)
|
26
|
-
end
|
27
|
-
|
28
|
-
def foo_sql(bar)
|
29
|
-
sql = ""
|
30
|
-
foo_sql_append(sql, bar)
|
31
|
-
sql
|
32
|
-
end
|
33
|
-
|
34
|
-
If you have questions about modifying your custom adapter or
|
35
|
-
extension, please ask on the Google Group or the IRC channel.
|
36
|
-
|
37
|
-
= New Features
|
38
|
-
|
39
|
-
* Model#set_server has been added to the base support (it was
|
40
|
-
previously only in the sharding plugin), which allows you to
|
41
|
-
set the shard on which to save/delete the model instance:
|
42
|
-
|
43
|
-
foo1.set_server(:server_a).save
|
44
|
-
foo2.set_server(:server_a).destroy
|
45
|
-
|
46
|
-
* Model#save now accepts a :server option that uses set_server
|
47
|
-
to set the shard to use. Unlike most other #save options, this
|
48
|
-
option persists past the end of the save. Previously, the
|
49
|
-
:server option only affected the transaction code, it now
|
50
|
-
affects the INSERT/UPDATE statement as well.
|
51
|
-
|
52
|
-
* When initiating a new dataset graph, any existing selected
|
53
|
-
columns is assumed to be the columns to select for the graph from
|
54
|
-
the current/master table. Before, there was not a way to specify
|
55
|
-
the columns to select from the current/master table.
|
56
|
-
|
57
|
-
* A :graph_alias_base association option has been added, which is
|
58
|
-
used to set the base alias name to use when eager graphing. This
|
59
|
-
is mostly useful when cascading eager graphs to dependent
|
60
|
-
associations, where multiple associations with the same name in
|
61
|
-
different models are being graphed simultaneously.
|
62
|
-
|
63
|
-
* You can now specify nanoseconds and a timezone offset
|
64
|
-
when converting a hash or array to a timestamp. The nanoseconds
|
65
|
-
and offset are the 7th and 8th entries in the array, and the :nanos
|
66
|
-
and :offset entry in the hash.
|
67
|
-
|
68
|
-
* The postgres adapter now respects a :connect_timeout option if you
|
69
|
-
are using the pg driver.
|
70
|
-
|
71
|
-
= Other Improvements
|
72
|
-
|
73
|
-
* Type conversion of Java to Ruby types in the JDBC adapter has been
|
74
|
-
made much faster, as conversion method lookup is now
|
75
|
-
O(number of columns) instead of
|
76
|
-
O(number of columns*number of rows).
|
77
|
-
|
78
|
-
* Sequel::SQL::Blob literalization is now much faster on adapters that
|
79
|
-
use hex encoding, by switching to String#unpack('H*').
|
80
|
-
|
81
|
-
* Database#after_commit and after_rollback now respect the :server
|
82
|
-
option to set the server/shard to use.
|
83
|
-
|
84
|
-
* Symbol splitting (e.g. for table__column) is now slightly faster.
|
85
|
-
|
86
|
-
* All adapters now pass the dataset :limit/:offset value through
|
87
|
-
Dataset#literal instead of using it verbatim. Note that
|
88
|
-
Dataset#limit already called to_i on input strings, so this isn't
|
89
|
-
a security issue. However, the previous code broke if you
|
90
|
-
provided a Sequel-specific object (e.g. Sequel::SQL::Function) as
|
91
|
-
the :limit/:offset value.
|
92
|
-
|
93
|
-
* Calling graph and eager_graph on an already graphed dataset no
|
94
|
-
longer modifies the receiver.
|
95
|
-
|
96
|
-
* Model#set_server now correctly handles the case where @this is
|
97
|
-
already loaded.
|
98
|
-
|
99
|
-
* Dataset#destroy for model datasets now uses the dataset's shard
|
100
|
-
for transactions.
|
101
|
-
|
102
|
-
* When emulating offset support using ROW_NUMBER (on Microsoft SQL
|
103
|
-
Server, DB2, and Oracle), explicitly order by the ROW_NUMBER
|
104
|
-
result, as otherwise the results are not guaranteed to be ordered.
|
105
|
-
|
106
|
-
* Explicitly force a case insensitive collation when emulating ILIKE
|
107
|
-
on Microsoft SQL Server. Previously, ILIKE could be case sensitive
|
108
|
-
on Microsoft SQL Server if case sensitive collation was the
|
109
|
-
database default.
|
110
|
-
|
111
|
-
* Using on_duplicate_key_update with prepared statements on MySQL now
|
112
|
-
works correctly.
|
113
|
-
|
114
|
-
* The tinytds adapter now works correctly if the
|
115
|
-
identifier_output_method is nil.
|
116
|
-
|
117
|
-
* The plugin/extension specs were cleaned up using the mock adapter.
|
118
|
-
|
119
|
-
= Backwards Compatibility
|
120
|
-
|
121
|
-
* In addition to the previously mentioned dataset literalization
|
122
|
-
changes, any custom adapters that overrode *_clause_methods
|
123
|
-
methods need to be modified to add a method that adds the
|
124
|
-
SELECT/UPDATE/INSERT/DELETE. Previously, this was done by default,
|
125
|
-
but due to common table expressions and the dataset literalization
|
126
|
-
changes, a separate method is now needed.
|
127
|
-
|
128
|
-
* Dataset#on_duplicate_key_update_sql has been removed from the shared
|
129
|
-
mysql adapter.
|
130
|
-
|
131
|
-
* The :columns dataset option used when inserting is no longer
|
132
|
-
literalized in advance.
|
133
|
-
|
134
|
-
* Dataset#as_sql no longer takes an expression, it just takes the
|
135
|
-
alias, and only adds the alias part.
|
@@ -1,146 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* The serialization plugin can now support custom serialization
|
4
|
-
formats, by supplying a serializer/deserializer pair of
|
5
|
-
callable objects. You can also register custom deserializers
|
6
|
-
via Sequel::Plugins::Serialization.register_format, so that
|
7
|
-
they can be referenced by name. Example:
|
8
|
-
|
9
|
-
Sequel::Plugins::Serialization.register_format(:reverse,
|
10
|
-
lambda{|v| v.reverse},
|
11
|
-
lambda{|v| v.reverse})
|
12
|
-
class User < Sequel::Model
|
13
|
-
serialize_attributes :reverse, :password
|
14
|
-
end
|
15
|
-
|
16
|
-
* Dataset#import and #multi_insert now support a
|
17
|
-
:return=>:primary_key option. When this option is used, the
|
18
|
-
methods return an array of primary key values, one for each
|
19
|
-
inserted row. Usage of this option on MySQL requires that a
|
20
|
-
separate query be issued per row (instead of the single
|
21
|
-
query for all rows that MySQL would usually use).
|
22
|
-
|
23
|
-
* PostgreSQL can now use Dataset#returning in conjunction with
|
24
|
-
import/multi_insert to set a custom column to return.
|
25
|
-
|
26
|
-
* Microsoft SQL Server can now use Dataset#output in conjection with
|
27
|
-
import/multi_insert to set a custom column to return.
|
28
|
-
|
29
|
-
* Dataset#import and #multi_insert now respect a :server option to
|
30
|
-
set the server/shard on which to execute the queries.
|
31
|
-
Additionally, options given to this method are also passed to
|
32
|
-
Dataset#transaction.
|
33
|
-
|
34
|
-
* Dataset#insert_multiple now returns an array of inserted primary
|
35
|
-
keys.
|
36
|
-
|
37
|
-
* Model.def_column_alias has been added to make it easy to create
|
38
|
-
alias methods for columns. This is useful if you have a legacy
|
39
|
-
database and want to create friendly method names for the
|
40
|
-
underlying columns. Note that this alias only affects the setter
|
41
|
-
and getter methods. This does not affect the dataset level, so you
|
42
|
-
still need to use the actual column names in dataset filters.
|
43
|
-
|
44
|
-
* many_to_one associations can now have the same name as the related
|
45
|
-
foreign key column, using the :key_column option. Use of this
|
46
|
-
feature is not recommended, as it is much better to either rename
|
47
|
-
the column or rename the association. Here's an example of usage:
|
48
|
-
|
49
|
-
# Example schema:
|
50
|
-
# albums artists
|
51
|
-
# :id /--> :id
|
52
|
-
# :artist --/ :name
|
53
|
-
# :name
|
54
|
-
class Album < Sequel::Model
|
55
|
-
def_column_alias(:artist_id, :artist)
|
56
|
-
many_to_one :artist, :key_column=>:artist
|
57
|
-
end
|
58
|
-
|
59
|
-
* The mock adapter can now mock out database types, by providing a
|
60
|
-
shared adapter name as the host (e.g. mock://postgres). This
|
61
|
-
emulation is not perfect, but in most cases it allows you to see
|
62
|
-
what SQL Sequel would generate on a given database without needing
|
63
|
-
to install the required database driver.
|
64
|
-
|
65
|
-
* Sequel now supports creating full text indexes on Microsoft SQL
|
66
|
-
Server. Before using it, you must have previously setup a default
|
67
|
-
full text search catalog, and you need to provide a :key_index
|
68
|
-
option with an index name symbol.
|
69
|
-
|
70
|
-
* Dataset#group_rollup and #group_cube methods have been added for
|
71
|
-
GROUP BY ROLLUP and GROUP BY CUBE support. These features are in
|
72
|
-
a recent SQL standard, and they are supported to various degrees on
|
73
|
-
Microsoft SQL Server, DB2, Oracle, MySQL, and Derby.
|
74
|
-
|
75
|
-
* Dataset#full_text_search on Microsoft SQL Server now supports
|
76
|
-
multiple search terms.
|
77
|
-
|
78
|
-
* The jdbc adapter now supports a :login_timeout option, giving the
|
79
|
-
timeout in seconds.
|
80
|
-
|
81
|
-
= Other Improvements
|
82
|
-
|
83
|
-
* Dataset#exists can now be used with prepared statement
|
84
|
-
placeholders.
|
85
|
-
|
86
|
-
* Dataset#full_text_search can now be used with prepared statement
|
87
|
-
placeholders on PostgreSQL, MySQL, and Microsoft SQL Server.
|
88
|
-
|
89
|
-
* If tables from two separate schema are detected when parsing the
|
90
|
-
schema for a table on PostgreSQL, an error is now raised.
|
91
|
-
Previously, no error was raised, which led to weird errors later,
|
92
|
-
such as duplicate columns in a model's primary_key.
|
93
|
-
|
94
|
-
* RETURNING is now supported with UPDATE/DELETE on PostgreSQL 8.2+.
|
95
|
-
Previously, Sequel only supported it on 9.1+, but PostgreSQL
|
96
|
-
introduced support for it in 8.2.
|
97
|
-
|
98
|
-
* The shared postgres adapter now correctly handles the return value
|
99
|
-
for Dataset#insert if you provide a separate column array and value
|
100
|
-
array on PostgreSQL < 8.2.
|
101
|
-
|
102
|
-
* Handle case in the PostgreSQL adapter where the server version
|
103
|
-
cannot be determined via a query.
|
104
|
-
|
105
|
-
* H2 clob types are now treated as string instead of as blob.
|
106
|
-
Treating clob as blob breaks on H2, as it doesn't automatically
|
107
|
-
hex-unescape the input for clobs as it does for blobs.
|
108
|
-
|
109
|
-
* Dataset#empty? now works correctly when the dataset has an offset
|
110
|
-
and offset support is being emulated.
|
111
|
-
|
112
|
-
* The mock adapter no longer defaults to downcasing identifiers on
|
113
|
-
output.
|
114
|
-
|
115
|
-
= Backwards Compatibility
|
116
|
-
|
117
|
-
* Dataset#exists now returns a PlaceholderLiteralString instead of a
|
118
|
-
LiteralString, which could potentially break some code. If you
|
119
|
-
would like a String returned, you can pass the returned object to
|
120
|
-
Dataset#literal:
|
121
|
-
|
122
|
-
dataset.literal(dataset.exists)
|
123
|
-
|
124
|
-
* Dataset#from no longer handles :a__b__c___d as "a.b.c AS d". This
|
125
|
-
was not the intended behavior, and nowhere else in Sequel is a
|
126
|
-
symbol treated that way. Now, Dataset#from is consistent with the
|
127
|
-
rest of Sequel, using "a.b__c AS d". This should only affect
|
128
|
-
people in very rare cases, as most databases don't use three level
|
129
|
-
qualified tables. One exception is Microsoft SQL Server, which can
|
130
|
-
use three level qualified tables for cross-database access.
|
131
|
-
|
132
|
-
* Previously, Dataset#insert_multiple returned an array of hashes, now
|
133
|
-
it returns an array of primary key values.
|
134
|
-
|
135
|
-
* Dataset#EXRACT_CLOSE in the shared sqlite adapter has been renamed to
|
136
|
-
Dataset#EXTRACT_CLOSE.
|
137
|
-
|
138
|
-
* Dataset::StoredProcedureMethods::SQL_QUERY_TYPE and
|
139
|
-
Dataset::ArgumentMapper::SQL_QUERY_TYPE constants have been removed,
|
140
|
-
as have related sql_query_type private methods.
|
141
|
-
|
142
|
-
* The serialization plugin was significantly refactored.
|
143
|
-
Model.serialization_map now contains a callable object instead of a
|
144
|
-
Symbol, and Model.serialization_format has been removed.
|
145
|
-
Model.define_serialized_attribute_accessors private method now takes
|
146
|
-
two callable objects before the columns, instead of a single symbol.
|
@@ -1,202 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Prepared statements now support :map and :to_hash prepared
|
4
|
-
statement types. The main reason for this is that certain
|
5
|
-
extensions (e.g. sequel_pg) optimize map/to_hash calls, and
|
6
|
-
there previously was not a way to use prepared statements
|
7
|
-
with the map/to_hash optimizations.
|
8
|
-
|
9
|
-
* Sequel.empty_array_handle_nulls has been added to change how
|
10
|
-
IN/NOT IN operations with an empty array are handled. See
|
11
|
-
the Backwards Compatibility section for details.
|
12
|
-
|
13
|
-
* 5 new association options have been added that allow you to
|
14
|
-
define associations where the underlying columns clash with
|
15
|
-
standard ruby method names:
|
16
|
-
|
17
|
-
many_to_one :primary_key_method
|
18
|
-
one_to_many :key_method
|
19
|
-
one_to_many :primary_key_column
|
20
|
-
many_to_many :left_primary_key_column
|
21
|
-
many_to_many :right_primary_key_method
|
22
|
-
|
23
|
-
Using these new options, you can now define associations
|
24
|
-
that work correctly when the underlying primary/foreign key
|
25
|
-
columns clash with existing ruby method names. See the RDoc
|
26
|
-
for details.
|
27
|
-
|
28
|
-
* A use_after_commit_rollback setting has been added to models.
|
29
|
-
This defaults to true, but can be set to false for performance
|
30
|
-
or to allow models to be used in prepared transactions
|
31
|
-
(which don't support after_commit/after_rollback).
|
32
|
-
|
33
|
-
* Dataset#update_ignore has been added when connecting to MySQL,
|
34
|
-
enabling use of the UPDATE IGNORE syntax to skip updating a row
|
35
|
-
if the update would cause a unique constraint to be violated.
|
36
|
-
|
37
|
-
* Database#indexes is now supported when connecting to Microsoft
|
38
|
-
SQL Server.
|
39
|
-
|
40
|
-
* On Microsoft SQL Server, the :include option is now supported
|
41
|
-
when creating indexes, for storing column values in the index,
|
42
|
-
which can be used by the query optimizer.
|
43
|
-
|
44
|
-
= Other Improvements
|
45
|
-
|
46
|
-
* The filtering/excluding by associations code now uses qualified
|
47
|
-
identifiers instead of unqualified identifiers, which allows it
|
48
|
-
to avoid ambiguous column names if you are doing your own joins.
|
49
|
-
|
50
|
-
* Virtual row blocks that return arrays are now handled correctly
|
51
|
-
in Dataset#select_map/select_order_map.
|
52
|
-
|
53
|
-
* Dataset#select_map/select_order_map can now take both a block
|
54
|
-
argument as well as a regular argument.
|
55
|
-
|
56
|
-
* Dataset#select_order_map now handles virtual row blocks that
|
57
|
-
return ordered expressions.
|
58
|
-
|
59
|
-
* Database#table_exists? should no longer generate false negatives
|
60
|
-
if you only have permission to retrieve some column values but
|
61
|
-
not all. Note that if you lack permission to SELECT from the
|
62
|
-
table itself, table_exists? can still generate false negatives.
|
63
|
-
|
64
|
-
* The active_model plugin now supports ActiveModel 3.2, by adding
|
65
|
-
support for to_partial_path.
|
66
|
-
|
67
|
-
* The serialization_modification_detection plugin now handles
|
68
|
-
changed_columns correctly both for new objects and after saving
|
69
|
-
objects.
|
70
|
-
|
71
|
-
* The serialization plugin now clears the deserialized values when
|
72
|
-
it does the automatic refresh after saving a new object, mostly for
|
73
|
-
consistency. You can use the skip_create_refresh plugin to skip
|
74
|
-
refreshing when creating a new model object.
|
75
|
-
|
76
|
-
* Column default values are now wrapped in parentheses on SQLite,
|
77
|
-
which fixes some cases such as when the default is an SQL function
|
78
|
-
call.
|
79
|
-
|
80
|
-
* Alter table emulation now works correctly on SQLite when foreign
|
81
|
-
keys reference the table being altered. The emulation requires
|
82
|
-
a renaming/deleting the existing table and creating a new table,
|
83
|
-
which can break foreign key references. Sequel now disables the
|
84
|
-
foreign key PRAGMA when altering tables, so SQLite won't track
|
85
|
-
the table renames and break the foreign key relationships.
|
86
|
-
|
87
|
-
* The set_column_type table alteration method no longer modifies
|
88
|
-
default values and NULL/NOT NULL settings on Microsoft SQL
|
89
|
-
Server, H2, and SQLite.
|
90
|
-
|
91
|
-
* On MySQL, Time/DateTime columns now use the timestamp type if the
|
92
|
-
default value is Sequel::CURRENT_TIMESTAMP, since it is currently
|
93
|
-
impossible for MySQL to have a non-constant default for a
|
94
|
-
datetime column (without using a workaround like a trigger).
|
95
|
-
|
96
|
-
* Metadata methods such as tables, views, and view_exists? are now
|
97
|
-
handled correctly on Oracle if custom identifier input methods
|
98
|
-
are used.
|
99
|
-
|
100
|
-
* Sequel now ignores errors that occur when attempting to get
|
101
|
-
information on column defaults in Oracle (which can happen if you
|
102
|
-
lack permission to the appropriate table). Previously, such errors
|
103
|
-
would cause the schema parser to raise an error, now, the schema
|
104
|
-
information is just returned without default information.
|
105
|
-
|
106
|
-
* Database#indexes now skips the primary key index when connecting to
|
107
|
-
DB2, Derby, HSQLDB, and Oracle via the jdbc adapter.
|
108
|
-
|
109
|
-
* Database#indexes now works correctly on DB2.
|
110
|
-
|
111
|
-
* The progress adapter has been fixed, it had been broken since the
|
112
|
-
dataset literalization refactoring.
|
113
|
-
|
114
|
-
* Dataset#naked! now works correctly. Previously, it just returned
|
115
|
-
the receiver unmodified.
|
116
|
-
|
117
|
-
* Dataset#paginate! has been removed, as it was broken.
|
118
|
-
|
119
|
-
* The query extension no longer breaks Dataset#clone if an argument
|
120
|
-
is not given.
|
121
|
-
|
122
|
-
* Transaction related queries are no longer logged twice in the mock
|
123
|
-
adapter.
|
124
|
-
|
125
|
-
= Backwards Compatibility
|
126
|
-
|
127
|
-
* Sequel's default handling of NOT IN operators with an empty array
|
128
|
-
of values has changed, which can change which rows are returned for
|
129
|
-
such queries.
|
130
|
-
|
131
|
-
Previously, Sequel was inconsistent in that it tried to handle NULL
|
132
|
-
values correctly in the IN case, but not in the NOT IN case. Now,
|
133
|
-
it defaults to handling NULL values correctly in both cases:
|
134
|
-
|
135
|
-
# 3.31.0
|
136
|
-
DB[:a].where(:b=>[])
|
137
|
-
# SELECT * FROM a WHERE (b != b)
|
138
|
-
DB[:a].exclude(:b=>[])
|
139
|
-
# SELECT * FROM a WHERE (1 = 1)
|
140
|
-
|
141
|
-
# 3.32.0
|
142
|
-
DB[:a].where(:b=>[])
|
143
|
-
# SELECT * FROM a WHERE (b != b)
|
144
|
-
DB[:a].exclude(:b=>[])
|
145
|
-
# SELECT * FROM a WHERE (b = b)
|
146
|
-
|
147
|
-
The important change in behavior is that in the NOT IN case, if
|
148
|
-
the left hand argument is NULL, the filter returns NULL instead
|
149
|
-
of true. This has the potential to change query results.
|
150
|
-
|
151
|
-
"Correct" here is really an opinion and not a fact, as there are
|
152
|
-
valid arguments for the alternative behavior:
|
153
|
-
|
154
|
-
DB[:a].where(:b=>[])
|
155
|
-
# SELECT * FROM a WHERE (1 = 0)
|
156
|
-
DB[:a].exclude(:b=>[])
|
157
|
-
# SELECT * FROM a WHERE (1 = 1)
|
158
|
-
|
159
|
-
The difference is that the "correct" NULL behavior is more
|
160
|
-
consistent with the non-empty array cases. For example, if b is
|
161
|
-
NULL:
|
162
|
-
|
163
|
-
# "Correct" NULL handling
|
164
|
-
# Empty array: where(:b=>[])
|
165
|
-
WHERE (b != b) # NULL
|
166
|
-
WHERE (b = b) # NULL
|
167
|
-
# Non-empty array: where(:b=>[1, 2])
|
168
|
-
WHERE (b IN (1, 2)) # NULL
|
169
|
-
WHERE (b NOT IN (1, 2)) # NULL
|
170
|
-
|
171
|
-
# Static boolean handling
|
172
|
-
# Empty array: where(:b=>[])
|
173
|
-
WHERE (1 = 0) # false
|
174
|
-
WHERE (1 = 1) # true
|
175
|
-
# Non-empty array: where(:b=>[1, 2])
|
176
|
-
WHERE (b IN (1, 2)) # NULL
|
177
|
-
WHERE (b NOT IN (1, 2)) # NULL
|
178
|
-
|
179
|
-
Sequel chooses to default to behavior consistent with the non-empty
|
180
|
-
array cases (similar to SQLAlchemy). However, there are two
|
181
|
-
downsides to this handling. The first is that some databases with
|
182
|
-
poor optimizers (e.g. MySQL) might do a full table scan with the
|
183
|
-
default syntax. The second is that the static boolean handling may
|
184
|
-
be generally perferable, if you believe that IN/NOT IN with an
|
185
|
-
empty array should always be true or false and never NULL even if
|
186
|
-
the left hand argument is NULL.
|
187
|
-
|
188
|
-
As there really isn't a truly correct answer in this case, Sequel
|
189
|
-
defaults to the "correct" NULL handling, and allows you to switch
|
190
|
-
to the static boolean handling via:
|
191
|
-
|
192
|
-
Sequel.empty_array_handle_nulls = false
|
193
|
-
|
194
|
-
This is currently a global setting, it may be made Database or
|
195
|
-
Dataset specific later if requested. Also, it is possible the
|
196
|
-
default will switch in the future, so if you care about a specific
|
197
|
-
handling, you should set your own default.
|
198
|
-
|
199
|
-
* Database#table_exists? now only rescues Sequel::DatabaseErrors
|
200
|
-
instead of StandardErrors, so it's possible it will raise errors
|
201
|
-
instead of returning false on custom adapters that don't wrap
|
202
|
-
their errors correctly.
|
@@ -1,157 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A server_block extension has been added that makes Sequel's
|
4
|
-
sharding support easier to use by scoping database access inside
|
5
|
-
the block to a given server/shard:
|
6
|
-
|
7
|
-
Sequel.extension :server_block
|
8
|
-
DB.extend Sequel::ServerBlock
|
9
|
-
DB.with_server(:shard_1) do
|
10
|
-
# All of these will execute against shard_1
|
11
|
-
DB.tables
|
12
|
-
DB[:table].all
|
13
|
-
DB.run 'SOME SQL'
|
14
|
-
end
|
15
|
-
|
16
|
-
* An arbitrary_servers extension has been added that extends
|
17
|
-
Sequel's sharding support so that you can use arbitrary
|
18
|
-
connection options instead of referencing an existing, predefined
|
19
|
-
server/shard:
|
20
|
-
|
21
|
-
Sequel.extension :arbitrary_servers
|
22
|
-
DB.pool.extend Sequel::ArbitraryServers
|
23
|
-
DB[:table].server(:host=>'foo', :database=>'bar').all
|
24
|
-
|
25
|
-
You can use this extension in conjunction with the server_block
|
26
|
-
extension:
|
27
|
-
|
28
|
-
DB.with_server(:host=>'foo', :database=>'bar') do
|
29
|
-
DB.synchronize do
|
30
|
-
# All of these will execute on host foo, database bar
|
31
|
-
DB.tables
|
32
|
-
DB[:table].all
|
33
|
-
DB.run 'SOME SQL'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
The combination of these two extensions makes it pretty easy to
|
38
|
-
write a thread-safe Rack middleware that scopes each request
|
39
|
-
to an arbitrary database.
|
40
|
-
|
41
|
-
* The sqlite adapter now supports an integer_booleans setting
|
42
|
-
for using 1/0 for true/false values, instead of the the 't'/'f'
|
43
|
-
values used by default. As SQLite recommends using integers to
|
44
|
-
store booleans, converting your existing database and enabling
|
45
|
-
this setting is recommended, but for backwards compatibility it
|
46
|
-
is set to false. You can convert you existing database by doing
|
47
|
-
the following for each table/column that has booleans:
|
48
|
-
|
49
|
-
DB[:table].update(:boolean_column=>{'t'=>1}.
|
50
|
-
case(0, :boolean_column))
|
51
|
-
|
52
|
-
The integer_booleans default setting may change in a future
|
53
|
-
version of Sequel, so you should set it manually to false if you
|
54
|
-
prefer the current default.
|
55
|
-
|
56
|
-
* You can now disable transaction use in migrations, in one of two
|
57
|
-
ways. You generally only need to do this if you are using an
|
58
|
-
SQL query inside a migration that is specifically not supported
|
59
|
-
inside a transaction, such as CREATE INDEX CONCURRENTLY on
|
60
|
-
PostgreSQL.
|
61
|
-
|
62
|
-
The first way to disable transactions is on a per-migration basis
|
63
|
-
by calling the no_transaction method inside the Sequel.migration
|
64
|
-
block:
|
65
|
-
|
66
|
-
Sequel.migration do
|
67
|
-
no_transaction
|
68
|
-
change do
|
69
|
-
# ...
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
That will make it so that a transaction is not used for that
|
74
|
-
particular migration. The second way is passing the
|
75
|
-
:use_tranctions=>false option when calling Migrator.run (using
|
76
|
-
the API), which will completely disable transactions for all
|
77
|
-
migrations during the migrator run.
|
78
|
-
|
79
|
-
* The postgres adapter now respects an :sslmode option when using
|
80
|
-
pg as the underlying driver, you can set the value of this option to
|
81
|
-
disable, allow, prefer, or require.
|
82
|
-
|
83
|
-
* Database#create_schema and #drop_schema are now defined when
|
84
|
-
connecting to PostgreSQL.
|
85
|
-
|
86
|
-
* Database#supports_savepoints_in_prepared_transactions? has been
|
87
|
-
added for checking if savepoints are supported inside prepared
|
88
|
-
transactions. This is true if both savepoints and prepared
|
89
|
-
transactions are both supported, except on MySQL > 5.5.12 (due to
|
90
|
-
MySQL bug 64374).
|
91
|
-
|
92
|
-
= Other Improvements
|
93
|
-
|
94
|
-
* The mysql and mysql2 adapters now both provide an accurate number
|
95
|
-
of rows matched, so Sequel::Model usage on those adapters will now
|
96
|
-
raise a NoExistingObject exception by default if you attempt to
|
97
|
-
delete or update an instance that no longer exists in the database.
|
98
|
-
|
99
|
-
* Foreign key creation now works correctly without specifying the
|
100
|
-
:key option when using MySQL with the InnoDB table engine. InnoDB
|
101
|
-
requires that you list the column explicitly, even if you are
|
102
|
-
referencing the primary key of the table, so if the :key option is
|
103
|
-
not given, the database schema is introspected to find the primary
|
104
|
-
key for the table. If you are attempting to create a table with
|
105
|
-
a self-referential foreign key, it introspects the generator to
|
106
|
-
get the primary key for the table.
|
107
|
-
|
108
|
-
* The sqlite adapter will now return 1/0 stored in boolean columns as
|
109
|
-
true/false. It will convert dates stored as Integers/Floats to
|
110
|
-
Date objects by assuming they represent the julian date. It will
|
111
|
-
convert times stored as Integers/Floats to Sequel::SQLTime objects
|
112
|
-
by assuming they represent a number of seconds. It will convert
|
113
|
-
datetimes stored as Integers by assuming they represent a unix
|
114
|
-
epoch time integer, and datetimes stored as Floats by assuming the
|
115
|
-
represent the julian date (with fractional part representing the
|
116
|
-
time of day). These changes make Sequel handle SQLite's
|
117
|
-
recommendations for boolean/date/time storage.
|
118
|
-
|
119
|
-
* The instance_hooks plugin's (before|after)_*_hook methods now return
|
120
|
-
self so they can be used in a method chain.
|
121
|
-
|
122
|
-
* The list plugin now automatically adds new entries to the end of the
|
123
|
-
list when creating the entries, if the position field is not
|
124
|
-
specifically set.
|
125
|
-
|
126
|
-
* An identifier_output_method is now respected in the mysql2 adapter.
|
127
|
-
|
128
|
-
* NaN/Infinity Float values are now quoted correctly for input on
|
129
|
-
PostgreSQL, and the postgres adapter correctly handles them on
|
130
|
-
retrieval from the database.
|
131
|
-
|
132
|
-
* The :collate column option is now respected when creating tables or
|
133
|
-
altering columns on MySQL.
|
134
|
-
|
135
|
-
* You can now force use of the TimestampMigrator when the
|
136
|
-
IntegerMigrator would be used by default by calling
|
137
|
-
TimestampMigrator.apply or .run.
|
138
|
-
|
139
|
-
* Mock adapter usage with a specific SQL dialect now uses the
|
140
|
-
appropriate defaults for quoting identifiers.
|
141
|
-
|
142
|
-
* You can now disable the use of sudo in the rake install/uninstall
|
143
|
-
tasks using the SUDO='' environment variable.
|
144
|
-
|
145
|
-
* A very misleading error message has been fixed when attempting
|
146
|
-
to constantize an invalid string in the model inflector.
|
147
|
-
|
148
|
-
= Backwards Compatibility
|
149
|
-
|
150
|
-
* The sqlite adapter now typecasts columns that SQLite stores as
|
151
|
-
INTEGER/REAL. Previously, it only typecasted columns that
|
152
|
-
SQLite stored as TEXT/BLOB. For details about SQLite storage, see
|
153
|
-
http://www.sqlite.org/datatype3.html.
|
154
|
-
|
155
|
-
Any custom type conversion procs used with the sqlite adapter should
|
156
|
-
be modified to work with Integer/Float objects in addition to String
|
157
|
-
objects.
|