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,304 +0,0 @@
|
|
1
|
-
= Migration Changes
|
2
|
-
|
3
|
-
* A TimestampMigrator has been added to Sequel, and is
|
4
|
-
automatically used if any migration has a version greater than
|
5
|
-
20000100. This migrator operates similarly to the default
|
6
|
-
ActiveRecord migrator, in that it allows missing migrations.
|
7
|
-
It differs from the ActiveRecord migrator in that it supports
|
8
|
-
migrations with the same timestamp/version as well as a wide
|
9
|
-
variety of timestamp formats (though the ActiveRecord default
|
10
|
-
of YYYYMMDDHHMMSS is recommended and should be used in
|
11
|
-
portable code).
|
12
|
-
|
13
|
-
Sequel still defaults to the old migrator, but you can use the
|
14
|
-
new one without making changes to your old migrations. Just
|
15
|
-
make sure your new migration starts with a version greater than
|
16
|
-
20000100, and Sequel will automatically convert the previous
|
17
|
-
schema table to the new format.
|
18
|
-
|
19
|
-
* A new migration DSL was added:
|
20
|
-
|
21
|
-
Sequel.migration do
|
22
|
-
up do
|
23
|
-
end
|
24
|
-
|
25
|
-
down do
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
The old style of using a Sequel::Migration subclass is still
|
30
|
-
supported, but it is recommended that new code use the new DSL.
|
31
|
-
|
32
|
-
* The default migrator also had significant issues fixed. First,
|
33
|
-
it now saves the migration version after each migration, instead
|
34
|
-
of after all migrations, which means Sequel won't attempt to
|
35
|
-
apply already applied migrations if there was previously an error
|
36
|
-
when applying multiple migrations at once on a database that
|
37
|
-
didn't support transactional schema modification.
|
38
|
-
|
39
|
-
Second, duplicate migration versions in the default migrator now
|
40
|
-
raise an exception, as do missing migration versions. Neither
|
41
|
-
should happen when using the default migrator, which requires
|
42
|
-
consecutive integer versions, similar to the old ActiveRecord
|
43
|
-
migrator.
|
44
|
-
|
45
|
-
* Execution times for migrations are now logged to the database's
|
46
|
-
loggers.
|
47
|
-
|
48
|
-
= New Plugins
|
49
|
-
|
50
|
-
* A sharding plugin has been added that allows model objects to
|
51
|
-
work well with sharded databases. When using it, model objects
|
52
|
-
know which shard they were retrieved from, so when you save
|
53
|
-
the object, it is saved back to that shard. The sharding plugin
|
54
|
-
also works with associations, so associated records are retrieved
|
55
|
-
from the same shard the main object was retreived from. The
|
56
|
-
sharding plugin also works with both methods of eager loading, and
|
57
|
-
provides methods that you can use to create objects on specific
|
58
|
-
shards.
|
59
|
-
|
60
|
-
* An update_primary_key plugin has been added that allows Sequel
|
61
|
-
to work correctly if you modify the primary key of a model object.
|
62
|
-
This should not be necessary if you are using surrogate keys, but
|
63
|
-
if your database uses natural primary keys which can change, this
|
64
|
-
should be helpful.
|
65
|
-
|
66
|
-
* An association_pks plugin has been added that adds association_pks
|
67
|
-
and association_pks= methods to model objects for both one_to_many
|
68
|
-
and many_to_many associations. The association_pks method returns
|
69
|
-
an array of primary key values for the associated objects, and
|
70
|
-
the association_pks= method modifies the database to ensure that
|
71
|
-
the object is only associated to the objects specified by the
|
72
|
-
array of primary keys provided to it.
|
73
|
-
|
74
|
-
* A string_stripper plugin has been added that strips all strings
|
75
|
-
that are assigned to attribute values. This is useful for web
|
76
|
-
applications where you want to easily remove leading and trailing
|
77
|
-
whitespace in form entries before storing them in the database.
|
78
|
-
|
79
|
-
* A skip_create_refresh plugin has been added that skips the refresh
|
80
|
-
of after you save a new model object. On most databases, Sequel
|
81
|
-
refreshes the model object after inserting it in order to get
|
82
|
-
values for all of the columns. For performance reasons, you can
|
83
|
-
use this plugin to skip the refresh if it isn't necessary for you.
|
84
|
-
|
85
|
-
= Other New Features
|
86
|
-
|
87
|
-
* Sequel::Model#set_fields and update_fields were added. These
|
88
|
-
methods have a similar API to set_only and update_only, but they
|
89
|
-
operate differently. While set_only and update_only operate over
|
90
|
-
the hash, these methods operate over the array of fields,
|
91
|
-
so they don't raise errors if the hash contains fields not
|
92
|
-
in the array:
|
93
|
-
|
94
|
-
params = {:a=>1, :b=>2, :c=>3}
|
95
|
-
album = Album[1]
|
96
|
-
|
97
|
-
# raises Error because :a is not in the fields
|
98
|
-
album.set_only(params, [:b, :c])
|
99
|
-
|
100
|
-
# Just sets the value of album.b and album.c
|
101
|
-
album.set_fields(params, [:b, :c])
|
102
|
-
|
103
|
-
Other than handling entries in the hash that aren't in the array,
|
104
|
-
set_fields and update_fields also handle entries not in the hash
|
105
|
-
differently:
|
106
|
-
|
107
|
-
# Doesn't modify the object, since the hash is empty
|
108
|
-
album.set_only({}, [:b, :c])
|
109
|
-
|
110
|
-
# Sets album.b and album.c to nil, since they aren't in the hash
|
111
|
-
album.set_fields({}, [:b, :c])
|
112
|
-
|
113
|
-
* The :eager_loader association option has a new API, though the
|
114
|
-
previous API still works. Instead of accepting three arguments,
|
115
|
-
it can now accept a single hash argument, which will use the
|
116
|
-
:key_hash, :rows, and :association keys for the previous three
|
117
|
-
arguments. The hash will also contain a :self key whose value
|
118
|
-
is the dataset doing the eager load, which was not possible to
|
119
|
-
determine using the old API.
|
120
|
-
|
121
|
-
* Sequel::SQL::Expression#hash has been added so that the objects
|
122
|
-
are now safe to use as hash keys.
|
123
|
-
|
124
|
-
* A Dataset#order_prepend method has been added allowing you to
|
125
|
-
prepend to an existing order. This is useful if want to modify
|
126
|
-
a dataset's order such that it first orders by the columns you
|
127
|
-
provide, but for any rows where the columns you provide are
|
128
|
-
equal, uses the existing order to further order the dataset:
|
129
|
-
|
130
|
-
ds.order(:albums__name).order_prepend(:artists__name)
|
131
|
-
# ORDER BY artists.name, albums.name
|
132
|
-
|
133
|
-
* When creating foreign key columns, you can now use a :deferrable
|
134
|
-
option to set up a foreign key constraint that is not checked
|
135
|
-
until the end of the transaction:
|
136
|
-
|
137
|
-
DB.create_table(:albums) do
|
138
|
-
primary_key :id
|
139
|
-
String :name
|
140
|
-
foreign_key :artist_id, :artists, :deferrable=>true
|
141
|
-
end
|
142
|
-
|
143
|
-
* many_to_many associations now support a :join_table_block option
|
144
|
-
that is used by the add/remove/remove_all methods. It can modify
|
145
|
-
the dataset to ensure that certain columns are included when
|
146
|
-
inserting or to add a filter so that only certain records are
|
147
|
-
deleted. It's useful if you have a many_to_many association that
|
148
|
-
is filtered to only a subset of the matching rows in the join
|
149
|
-
table.
|
150
|
-
|
151
|
-
* The single_table_inheritance plugin now supports :model_map and
|
152
|
-
:key_map options to set up a custom mapping of column values to
|
153
|
-
model classes. For simple situations such as when you are mapping
|
154
|
-
integer values to certain classes, a :model_map hash is sufficient:
|
155
|
-
|
156
|
-
Employee.plugin :single_table_inheritance, :type_id,
|
157
|
-
:model_map=>{1=>:Staff, 2=>:Manager}
|
158
|
-
|
159
|
-
Here the :model_map keys are type_id column values, and the
|
160
|
-
:model_map values are symbols or strings specifying class names.
|
161
|
-
|
162
|
-
For more complex conditions, you can use a pair of procs:
|
163
|
-
|
164
|
-
Employee.plugin :single_table_inheritance, :type_name,
|
165
|
-
:model_map=>proc{|v| v.reverse},
|
166
|
-
:key_map=>proc{|klass| klass.name.reverse}
|
167
|
-
|
168
|
-
Here the type_name column is a string column holding the reverse
|
169
|
-
of the class's name.
|
170
|
-
|
171
|
-
* The single_table_inheritance plugin now correctly sets up subclass
|
172
|
-
filters for middle tables in a class hierarchy with more than 2
|
173
|
-
levels. For example, with this code:
|
174
|
-
|
175
|
-
class Employee < Sequel::Model; end
|
176
|
-
Employee.plugin :single_table_inheritance, :kind
|
177
|
-
class Manager < Employee; end
|
178
|
-
class Executive < Manager; end
|
179
|
-
|
180
|
-
Sequel previously would not return Executives if you used
|
181
|
-
Manager.all. It now correctly recognizes subclasses so that it
|
182
|
-
will return both Managers and Executives.
|
183
|
-
|
184
|
-
* Sequel::Model.qualified_primary_key_hash has been added, giving
|
185
|
-
you a hash that can be used for filtering. It is similar to
|
186
|
-
primary_key_hash, but it qualifies the keys with the model's
|
187
|
-
table. It's useful if you have joined the table to another table
|
188
|
-
that has columns with the same name, but you want to only look
|
189
|
-
for a single model object in that dataset.
|
190
|
-
|
191
|
-
* For consistency, you can now use Dataset#order_append as an alias
|
192
|
-
for order_more.
|
193
|
-
|
194
|
-
= Other Improvements
|
195
|
-
|
196
|
-
* Sequel now correctly removes schema entries when altering tables.
|
197
|
-
Previously, some adapters that had to query the existing schema
|
198
|
-
when altering tables resulted in the previous schema being cached.
|
199
|
-
|
200
|
-
* Sequel::Model::Errors#on now always returns nil if there are no
|
201
|
-
errors on the attribute. Previously, it would return an empty
|
202
|
-
array in certain cases. Additionally, Sequel::Model::Errors#empty?
|
203
|
-
now returns true if there are no errors, where it certain cases
|
204
|
-
it would return false even if there were no errors.
|
205
|
-
|
206
|
-
* The schema_dumper extension now works with tables specified as
|
207
|
-
Sequel::SQL::Identifiers.
|
208
|
-
|
209
|
-
* Sequel now recognizes the timestamp(N) with(out) time zone column
|
210
|
-
type.
|
211
|
-
|
212
|
-
* The lazy_attributes plugin no longer requires the core extensions
|
213
|
-
to work correctly.
|
214
|
-
|
215
|
-
* DatabaseDisconnectError support has been added to the ODBC adapter,
|
216
|
-
allowing Sequel to detect disconnects and remove the connection
|
217
|
-
from the connection pool.
|
218
|
-
|
219
|
-
* A leak of JDBC statement objects when using transactions was
|
220
|
-
fixed in the jdbc adapter.
|
221
|
-
|
222
|
-
* The jdbc adapter now gives a nicer error message if you use a
|
223
|
-
connection string that it doesn't recognize and there is an error
|
224
|
-
when connecting.
|
225
|
-
|
226
|
-
* Temporary table creation was fixed on Microsoft SQL Server, but
|
227
|
-
it is not recommended as it changes the name of the table. If
|
228
|
-
you use Microsoft SQL Server, you should prefix your temporary
|
229
|
-
table names with # and use the regular create table method.
|
230
|
-
|
231
|
-
* A large number of guides were added to Sequel to make it easier
|
232
|
-
for new and existing users to learn more about Sequel. The
|
233
|
-
following guides were added:
|
234
|
-
|
235
|
-
* Querying in Sequel
|
236
|
-
* Migration and Schema Modification
|
237
|
-
* Model Hooks
|
238
|
-
* Model Validations
|
239
|
-
* Sequel for SQL Users
|
240
|
-
* Sequel for ActiveRecord Users
|
241
|
-
|
242
|
-
* RDoc section support was added to Sequel::Database, making the
|
243
|
-
method documentation easier to read.
|
244
|
-
|
245
|
-
= Backwards Compatibility
|
246
|
-
|
247
|
-
* Sequel::Database now defines the indexes and tables methods, even
|
248
|
-
if the adapter does not implement them, similar to how connect
|
249
|
-
and execute are defined. Previously, you could use respond_to? to
|
250
|
-
check if the adapter supported them, now they raise
|
251
|
-
Sequel::NotImplemented if the database adapter does not implement
|
252
|
-
them.
|
253
|
-
|
254
|
-
* Sequel used to raise NotImplementedError in certain default
|
255
|
-
definitions of methods inside Sequel::Database and Sequel::Dataset,
|
256
|
-
when the methods were supposed to be overridden in subclasses.
|
257
|
-
Sequel now uses a Sequel::NotImplemented exception class for these
|
258
|
-
exceptions, which is a subclass of Sequel::Error.
|
259
|
-
|
260
|
-
* Sequel no longer applies all association options to the dataset
|
261
|
-
used to remove all many_to_many associated objects. You should
|
262
|
-
use the new :join_table_block option to get similar behavior if
|
263
|
-
you were filtering the many_to_many association based on columns
|
264
|
-
in the join table and you wanted remove_all to only remove the
|
265
|
-
related columns.
|
266
|
-
|
267
|
-
* Sequel now calls certain before and after hook actions in plugins
|
268
|
-
in a different order than before. This should not have an effect
|
269
|
-
unless you were relying on them being called in the previous order.
|
270
|
-
Now, when overriding before hooks in plugins, Sequel always does
|
271
|
-
actions before calling super, and when overriding after hooks in
|
272
|
-
plugins, Sequel always does actions after calling super.
|
273
|
-
|
274
|
-
* The hook_class_methods plugin no longer skips later after hooks if
|
275
|
-
a previous after hook returns false. That behavior now only occurs
|
276
|
-
for before hooks.
|
277
|
-
|
278
|
-
* Sequel now only removes primary key values when updating objects if
|
279
|
-
you are saving the entire object and you have not modified the
|
280
|
-
values of the primary keys. Previously, Sequel would remove
|
281
|
-
primary key values when updating even if you specified the primary
|
282
|
-
key column specifically or the primary key column was modified and
|
283
|
-
you used save_changes/update.
|
284
|
-
|
285
|
-
* Sequel now uses explicit methods instead of aliases for certain
|
286
|
-
methods. This should only affect you if for example you overrode
|
287
|
-
Dataset#group to do one thing and wanted Dataset#group_by to do
|
288
|
-
the default action. Now, Dataset#group_by, and methods like it, are
|
289
|
-
explicit methods that just call the methods they previously
|
290
|
-
aliased. This also means that if you were overriding Dataset#group
|
291
|
-
and explicitly aliasing group_by to it, you no longer need the
|
292
|
-
alias.
|
293
|
-
|
294
|
-
* The single_table_inheritance plugin now uses IN instead of = for
|
295
|
-
subclass filters. This could lead to poor performance if the
|
296
|
-
database has a very bad query planner.
|
297
|
-
|
298
|
-
* The private transaction_statement_object method was removed from
|
299
|
-
the JDBC adapter, and Sequel will no longer check for the presence
|
300
|
-
of the method in the transaction code.
|
301
|
-
|
302
|
-
* The Sequel::Migrator object is now a class instead of a module, and
|
303
|
-
has been pretty much rewritten. If you were using any methods of
|
304
|
-
it besides apply and run, they no longer work.
|
@@ -1,210 +0,0 @@
|
|
1
|
-
= New Plugins
|
2
|
-
|
3
|
-
* A json_serializer plugin was added that allows you to serialize
|
4
|
-
model instances or datasets to JSON using to_json. It requires
|
5
|
-
the json library. The API was modeled on ActiveRecord's JSON
|
6
|
-
serialization support. You can use :only and :except options
|
7
|
-
to specify the columns included, :include to specify associations
|
8
|
-
to include, as well pass options to nested associations using a
|
9
|
-
hash. In addition to serializing to JSON, it also adds support
|
10
|
-
for parsing JSON to model objects via JSON.parse or #from_json.
|
11
|
-
|
12
|
-
* An xml_serializer plugin was added that allows you to serialize
|
13
|
-
model instances or datasets to XML. It requries the nokogiri
|
14
|
-
library. It has a similar API to the json_serializer plugin, using
|
15
|
-
to_xml instead of to_json, and the from_xml class method instead
|
16
|
-
of JSON.parse.
|
17
|
-
|
18
|
-
* A tree plugin was added that allows you to treat Sequel::Model
|
19
|
-
objects as being part of a tree. It provides similar features to
|
20
|
-
rcte_tree, but works on databases that don't support recursive
|
21
|
-
common table expressions. In addition to the standard parent
|
22
|
-
and children associations, it provides instance methods to get
|
23
|
-
the ancestors, descendants, and siblings of the given tree node,
|
24
|
-
and class methods to get the roots of the tree.
|
25
|
-
|
26
|
-
* A list plugin was added that allows you to treat Sequel::Model
|
27
|
-
objects as being part of a list. This adds instance methods to
|
28
|
-
get the next and prev items in the list, or to move the item
|
29
|
-
to a specific place in the list. You can specify that all rows
|
30
|
-
in the table belong to the same list, or specify arbitrary scopes
|
31
|
-
so that the same table can contain many separate lists.
|
32
|
-
|
33
|
-
= Other New Features
|
34
|
-
|
35
|
-
* Sequel is now compatible with Ruby 1.9.2pre3.
|
36
|
-
|
37
|
-
* Sequel now supports prepared transactions/two-phase commit on
|
38
|
-
PostgreSQL, MySQL, and H2. You can specify that you want to
|
39
|
-
use prepared transactions using the :prepare option which
|
40
|
-
should be some transaction id string:
|
41
|
-
|
42
|
-
DB.transaction(:prepare=>'some string') do ... end
|
43
|
-
|
44
|
-
Assuming that no exceptions are raised in the transaction block,
|
45
|
-
Sequel will prepare the transaction. You can then commit the
|
46
|
-
transaction later:
|
47
|
-
|
48
|
-
DB.commit_prepared_transaction('some string')
|
49
|
-
|
50
|
-
If you need to rollback the prepared transaction, you can do
|
51
|
-
so as well:
|
52
|
-
|
53
|
-
DB.rollback_prepared_transaction('some string')
|
54
|
-
|
55
|
-
* Sequel now supports customizable transaction isolation levels on
|
56
|
-
PostgreSQL, MySQL, and Microsoft SQL Server. You can specify the
|
57
|
-
transaction isolation level to use for any transaction using the
|
58
|
-
:isolation option with an :uncommitted, :committed, :repeatable,
|
59
|
-
or :serializable value:
|
60
|
-
|
61
|
-
DB.transaction(:isolation=>:serializable) do ... end
|
62
|
-
|
63
|
-
You can also set the default isolation level for transactions via
|
64
|
-
the transaction_isolation_level Database attribute:
|
65
|
-
|
66
|
-
DB.transaction_isolation_level = :committed
|
67
|
-
|
68
|
-
If you are connecting to Microsoft SQL Server, it is recommended
|
69
|
-
that you set a default transaction isolation level if you plan
|
70
|
-
on using this feature.
|
71
|
-
|
72
|
-
* You can specify a NULLS FIRST/LAST ordering by using the
|
73
|
-
:nulls=>:first/:last option to asc and desc:
|
74
|
-
|
75
|
-
Album.filter(:release_date.desc(:nulls=>:first),
|
76
|
-
:name.asc(:nulls=>:last))
|
77
|
-
# ORDER BY release_date DESC NULLS FIRST,
|
78
|
-
# name ASC NULLS LAST
|
79
|
-
|
80
|
-
This syntax is supported by PostgreSQL 8.3+, Firebird 1.5+,
|
81
|
-
Oracle, and probably some other databases as well, and makes it
|
82
|
-
possible for the user to specify whether NULL values should sort
|
83
|
-
before or after other values.
|
84
|
-
|
85
|
-
* Sequel::Model.find_or_create now accepts a block that is a yielded
|
86
|
-
a new model object to be created if an existing model object is
|
87
|
-
not found.
|
88
|
-
|
89
|
-
Node.find_or_create(:name=>'A'){|i| i.parent_id = 4}
|
90
|
-
|
91
|
-
* The :frame option for windows and window functions can now be a
|
92
|
-
string that is used literally in the SQL. This is necessary if you
|
93
|
-
want to specify a custom frame, such as one that uses a specific
|
94
|
-
number of rows preceding or following.
|
95
|
-
|
96
|
-
* Savepoints are now supported on H2.
|
97
|
-
|
98
|
-
* A :methods_module association option was added, allowing you to
|
99
|
-
specify the module into which association instance methods are
|
100
|
-
placed. By default, it uses the module containing the column
|
101
|
-
accessor methods.
|
102
|
-
|
103
|
-
= Other Improvements
|
104
|
-
|
105
|
-
* The :encoding option for the native MySQL adapter should now work
|
106
|
-
correctly in all cases. This fix was included in 3.12.1.
|
107
|
-
|
108
|
-
* Sequel now handles arrays of two element arrays automatically when
|
109
|
-
using them as the value of a filter hash:
|
110
|
-
|
111
|
-
DB[a].filter([:a, :b]=>[[1, 2], [3, 4]])
|
112
|
-
|
113
|
-
Previously, you had to call .sql_array on the array in order to
|
114
|
-
tell Sequel that it was a value list and not a conditions
|
115
|
-
specifier.
|
116
|
-
|
117
|
-
* Sequel no longer attempts to use class polymorphism in the
|
118
|
-
class_table_inheritance plugin if you don't specify a cti_key.
|
119
|
-
|
120
|
-
* When using the native SQLite adapter, prepared statements are now
|
121
|
-
cached per connection for increased performance. Previously,
|
122
|
-
Sequel prepared a new statement for every query.
|
123
|
-
|
124
|
-
* tinyint(1) columns are now handled as booleans when connecting to
|
125
|
-
MySQL via JDBC.
|
126
|
-
|
127
|
-
* On PostgreSQL, if no :schema option is provided for
|
128
|
-
Database#tables, #table_exists?, or #schema, and no default_schema
|
129
|
-
is used, assume all schemas except the default non-public ones.
|
130
|
-
Previously, it assumed the public schema for tables and
|
131
|
-
table_exists?, but did not assume any schema for #schema.
|
132
|
-
|
133
|
-
This fixes issues if you use table names that overlap with table
|
134
|
-
names in the information_schema, such as domains. It's still
|
135
|
-
recommended that you specify a default_schema if you are using a
|
136
|
-
schema other than public.
|
137
|
-
|
138
|
-
* Unsigned integers are now handled correctly in the schema dumper.
|
139
|
-
|
140
|
-
* Sequel::SQL::PlaceholderLiteralString is now a GenericExpression
|
141
|
-
subclass, allowing you to treat it like most other Sequel
|
142
|
-
expression objects:
|
143
|
-
|
144
|
-
'(a || ?)'.lit(:b).like('Test%')
|
145
|
-
# ((a || b) LIKE 'Test%')
|
146
|
-
|
147
|
-
* Sequel now supports the bitwise shift operators (<< and >>) on
|
148
|
-
Microsoft SQL Server by emulating them.
|
149
|
-
|
150
|
-
* Sequel now supports most bitwise operators (&, |, ^, <<, >>) on H2
|
151
|
-
by emulating them. The bitwise complement operator is not yet
|
152
|
-
supported.
|
153
|
-
|
154
|
-
* Sequel now logs the SQL queries that are sent when connecting to
|
155
|
-
MySQL.
|
156
|
-
|
157
|
-
* If a plugin cannot be loaded, Sequel now gives a more detailed
|
158
|
-
error message.
|
159
|
-
|
160
|
-
= Backwards Compatibility
|
161
|
-
|
162
|
-
* Array#sql_array and the Sequel::SQL::SQLArray class are now
|
163
|
-
considered deprecated. Use the Array#sql_value_list and the
|
164
|
-
Sequel::SQL::ValueList class instead. SQLArray is now just
|
165
|
-
an alias for ValueList, but it now is an Array subclass instead
|
166
|
-
of a Sequel::SQL::Expression subclass.
|
167
|
-
|
168
|
-
* Using the ruby bitwise xor operator (^) on PostgreSQL now uses
|
169
|
-
PostgreSQL's bitwise xor operator (#) instead of PostgreSQL's
|
170
|
-
exponentiation operator (^). If you want exponentiation, use
|
171
|
-
the power function.
|
172
|
-
|
173
|
-
* Using the ruby bitwise complement operator (~) on MySQL now returns
|
174
|
-
a signed integer instead of an unsigned integer, for better
|
175
|
-
compatibility with other databases.
|
176
|
-
|
177
|
-
* Using nil as a case expression value (the 2nd argument to Hash#case
|
178
|
-
and Array#case) will now use NULL as the case expression value,
|
179
|
-
instead of omitting the case expression value:
|
180
|
-
|
181
|
-
# 3.12.0
|
182
|
-
{1=>2}.case(0, nil)
|
183
|
-
# CASE WHEN 1 THEN 2 ELSE 0 END
|
184
|
-
|
185
|
-
# 3.13.0
|
186
|
-
{1=>2}.case(0, nil)
|
187
|
-
# CASE NULL WHEN 1 THEN 2 ELSE 0 END
|
188
|
-
|
189
|
-
In general, you would never use nil explicitly, but the new
|
190
|
-
behavior makes more sense if you have a variable that might be nil:
|
191
|
-
|
192
|
-
parent_id = Node[1].parent_id
|
193
|
-
{1=>2}.case(0, parent_id)
|
194
|
-
|
195
|
-
If parent_id IS NULL/nil, then previously Sequel would have
|
196
|
-
generated unexpected SQL. If you don't want a case expression
|
197
|
-
value to be used, do not pass a second argument to #case.
|
198
|
-
|
199
|
-
* Some internal transaction methods now take an optional options
|
200
|
-
hash, so if you have a custom adapter, you will need to make
|
201
|
-
changes.
|
202
|
-
|
203
|
-
* Some internal association methods now take an optional options
|
204
|
-
hash.
|
205
|
-
|
206
|
-
* Some Rakefile task names were modified in the name of consistency:
|
207
|
-
|
208
|
-
spec_coverage -> spec_cov
|
209
|
-
integration -> spec_integration
|
210
|
-
integration_cov -> spec_integration_cov
|
@@ -1,118 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Dataset#grep now accepts :all_patterns, :all_columns, and
|
4
|
-
:case_insensitive options. Previously, grep would use a case
|
5
|
-
sensitive search where it would match if any pattern matched any
|
6
|
-
column. These three options give you more control over how the
|
7
|
-
pattern matching will work:
|
8
|
-
|
9
|
-
dataset.grep([:a, :b], %w'%test% foo')
|
10
|
-
# WHERE ((a LIKE '%test%') OR (a LIKE 'foo')
|
11
|
-
# OR (b LIKE '%test%') OR (b LIKE 'foo'))
|
12
|
-
|
13
|
-
dataset.grep([:a, :b], %w'%foo% %bar%', :all_patterns=>true)
|
14
|
-
# WHERE (((a LIKE '%foo%') OR (b LIKE '%foo%'))
|
15
|
-
# AND ((a LIKE '%bar%') OR (b LIKE '%bar%')))
|
16
|
-
|
17
|
-
dataset.grep([:a, :b], %w'%foo% %bar%', :all_columns=>true)
|
18
|
-
# WHERE (((a LIKE '%foo%') OR (a LIKE '%bar%'))
|
19
|
-
# AND ((b LIKE '%foo%') OR (b LIKE '%bar%')))
|
20
|
-
|
21
|
-
dataset.grep([:a, :b], %w'%foo% %bar%',
|
22
|
-
:all_patterns=>true,:all_columns=>true)
|
23
|
-
# WHERE ((a LIKE '%foo%') AND (b LIKE '%foo%')
|
24
|
-
# AND (a LIKE '%bar%') AND (b LIKE '%bar%'))
|
25
|
-
|
26
|
-
dataset.grep([:a, :b], %w'%test% foo', :case_insensitive=>true)
|
27
|
-
# WHERE ((a ILIKE '%test%') OR (a ILIKE 'foo')
|
28
|
-
# OR (b ILIKE '%test%') OR (b ILIKE 'foo'))
|
29
|
-
|
30
|
-
* When using the schema plugin, you can now provide a block to the
|
31
|
-
create_table methods to set the schema and create the table
|
32
|
-
in the same call:
|
33
|
-
|
34
|
-
class Artist < Sequel::Model
|
35
|
-
create_table do
|
36
|
-
primary_key :id
|
37
|
-
String :name
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
* The tree plugin now accepts a :single_root option, which uses a
|
42
|
-
before_save hook to attempt to ensure that there is only a single
|
43
|
-
root in the tree. It also adds a Model.root method to get the
|
44
|
-
single root of the tree.
|
45
|
-
|
46
|
-
* The tree plugin now adds a Model#root? instance method to check
|
47
|
-
if the current node is a root of the tree.
|
48
|
-
|
49
|
-
* Model#save now takes a :raise_on_failure option which will
|
50
|
-
override the object's raise_on_save_failure setting. This makes
|
51
|
-
it easier to get the desired behavior (raise or just return false)
|
52
|
-
in library code without using a begin/ensure block.
|
53
|
-
|
54
|
-
* The Database#adapter_scheme instance method was added, which
|
55
|
-
operates the same as the class method.
|
56
|
-
|
57
|
-
* Sequel now handles the literalization of OCI8::CLOB objects in
|
58
|
-
the Oracle adapter.
|
59
|
-
|
60
|
-
= Other Improvements
|
61
|
-
|
62
|
-
* When using the timezone support, Sequel will now correctly load
|
63
|
-
times and datetimes in standard time when the current timezone is
|
64
|
-
in daylight time, or vice versa. Previously, if you tried to
|
65
|
-
to load a time or datetime in December when in July in a timezone
|
66
|
-
that used daylight time, it would be off by an hour.
|
67
|
-
|
68
|
-
* The rcte_tree plugin now works correctly when a :conditions option
|
69
|
-
is used.
|
70
|
-
|
71
|
-
* The single_table_inheritance plugin now works correctly when the
|
72
|
-
class discriminator column has the same name as an existing ruby
|
73
|
-
method (such as type).
|
74
|
-
|
75
|
-
* Database#each_server now works correctly when a connection string
|
76
|
-
is used to connect, instead of an options hash.
|
77
|
-
|
78
|
-
* Model#destroy now respects the object's use_transactions setting,
|
79
|
-
instead of always using a transaction.
|
80
|
-
|
81
|
-
* Model#exists? now uses a simpler and faster query.
|
82
|
-
|
83
|
-
* Sequel now handles the aggregate methods such as count and sum
|
84
|
-
correctly on Microsoft SQL Server when using an ordered dataset
|
85
|
-
with a clause such as DISTINCT or GROUP and without a limit.
|
86
|
-
|
87
|
-
* Sequel now handles rename_table correctly on Microsoft SQL Server
|
88
|
-
when using a case sensitive collation, or when qualifying the
|
89
|
-
table with a schema.
|
90
|
-
|
91
|
-
* Sequel now parses the schema correctly on Oracle when the same
|
92
|
-
table name is used in multiple schemas.
|
93
|
-
|
94
|
-
* Sequel now handles OCIInvalidHandle errors when disconnecting
|
95
|
-
in the Oracle adapter.
|
96
|
-
|
97
|
-
* Sequel now raises a Sequel::Error instead of an ArgumentError
|
98
|
-
if the current or target migration version does not exist.
|
99
|
-
|
100
|
-
* When a mismatched number of composite keys are used in
|
101
|
-
associations, Sequel now uses a more detailed error message.
|
102
|
-
|
103
|
-
* Significant improvements were made to the Dataset and Model
|
104
|
-
RDoc documentation.
|
105
|
-
|
106
|
-
= Backwards Compatibility
|
107
|
-
|
108
|
-
* Model#valid? now must accept an optional options hash.
|
109
|
-
|
110
|
-
* The Model#save_failure private method was renamed to
|
111
|
-
raise_hook_failure.
|
112
|
-
|
113
|
-
* The LOCAL_DATETIME_OFFSET_SECS and LOCAL_DATETIME_OFFSET constants
|
114
|
-
have been removed from the Sequel module.
|
115
|
-
|
116
|
-
* Sequel now uses obj.to_json instead of JSON.generate(obj). This
|
117
|
-
shouldn't affect backwards compatibility, but did fix a bug in
|
118
|
-
certain cases.
|