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
data/doc/release_notes/3.6.0.txt
DELETED
@@ -1,366 +0,0 @@
|
|
1
|
-
New Features
|
2
|
-
------------
|
3
|
-
|
4
|
-
* Dataset#filter and related methods now accept a string with named
|
5
|
-
placeholders, and a hash with placeholder values:
|
6
|
-
|
7
|
-
ds.filter('copies_sold > :sales', :sales=>500000)
|
8
|
-
|
9
|
-
Sequel's general support for this syntax is nicer:
|
10
|
-
|
11
|
-
ds.filter{copies_sold > 500000}
|
12
|
-
|
13
|
-
But named placeholder support can make it easier to port code
|
14
|
-
from other database libraries. Also, it works much better than
|
15
|
-
the ? placeholder support if you have a long SQL statement:
|
16
|
-
|
17
|
-
DB['SELECT :n FROM t WHERE p > :q AND p < :r', :n=>1,:q=>2,:r=>3]
|
18
|
-
|
19
|
-
Sequel doesn't subsitute values that don't appear in the hash:
|
20
|
-
|
21
|
-
ds.where('price < :p AND id in :ids', :p=>100)
|
22
|
-
# WHERE (price < 100 AND id in :ids)
|
23
|
-
|
24
|
-
This makes it easier to spot missed placeholders, and avoids issues
|
25
|
-
with PostgreSQL's :: casting syntax or : inside string literals.
|
26
|
-
|
27
|
-
* The Model add_ association method now accepts a hash and creates
|
28
|
-
a new associated model object associated to the receiver:
|
29
|
-
|
30
|
-
Artist[:name=>'YJM'].add_album(:name=>'RF')
|
31
|
-
|
32
|
-
* The Model remove_ association method now accepts a primary key
|
33
|
-
and removes the associated model object from the association. For
|
34
|
-
models using composite primary keys, an array of primary key values
|
35
|
-
can be used. Example:
|
36
|
-
|
37
|
-
Artist[:name=>'YJM'].remove_album(1) # regular pk
|
38
|
-
Artist[:name=>'YJM'].remove_album([2, 3]) # composite pk
|
39
|
-
|
40
|
-
* Dataset#bind was added, allowing you to bind values before calling
|
41
|
-
Dataset#call. This is more consistent with Sequel's general
|
42
|
-
approach where queries can be built in any order.
|
43
|
-
|
44
|
-
* The native postgres adapter now has Dataset#use_cursor, which
|
45
|
-
allows you to process huge datasets without keeping all records in
|
46
|
-
memory. The default number of rows per cursor fetch is 1000, but
|
47
|
-
that can be modified:
|
48
|
-
|
49
|
-
DB[:huge_table].use_cursor.each{|r| p r}
|
50
|
-
DB[:huge_table].use_cursor(:rows_per_fetch=>10000).each{|r| p r}
|
51
|
-
|
52
|
-
This probably won't work with prepared statements or
|
53
|
-
bound variables.
|
54
|
-
|
55
|
-
* The nested_attributes plugin now adds newly created objects to the
|
56
|
-
cached association array immediately, even though the changes
|
57
|
-
are not persisted to the database until after the object is saved.
|
58
|
-
The reasoning for this is that otherwise there is no way to access
|
59
|
-
the newly created associated objects before the save, and no way
|
60
|
-
to access them at all if validation fails.
|
61
|
-
|
62
|
-
This makes the nested_attributes plugin much easier to use, since
|
63
|
-
now you can just iterate over the cached association array when
|
64
|
-
building the form. If validation fails, it will have the newly
|
65
|
-
created failed objects in the array, so you can easily display the
|
66
|
-
form as the user entered it for them to make changes.
|
67
|
-
|
68
|
-
This change doesn't affect many_to_one associations, since those
|
69
|
-
don't have a cached association array. This also does not affect
|
70
|
-
updating existing records, since those are already in the cached
|
71
|
-
array.
|
72
|
-
|
73
|
-
* You can now easily override the default options used in the
|
74
|
-
validation_helpers plugin (the recommended validation plugin).
|
75
|
-
Options can be overridden at a global level:
|
76
|
-
|
77
|
-
Sequel::Plugins::ValidationHelpers::DEFAULT_OPTIONS[:format].
|
78
|
-
merge!(:message=>"incorrect format", :allow_missing=>true)
|
79
|
-
|
80
|
-
Options can also be overridden on a per-class level:
|
81
|
-
|
82
|
-
class Album < Sequel::Model
|
83
|
-
plugin :validation_helpers
|
84
|
-
DEFAULT_VALIDATION_OPTIONS = {
|
85
|
-
:format=>{:message=>"incorrect format", :allow_missing=>true}}
|
86
|
-
|
87
|
-
private
|
88
|
-
|
89
|
-
def default_validation_helpers_options(type)
|
90
|
-
super.merge(DEFAULT_VALIDATION_OPTIONS[type] || {})
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
* You can now use a proc instead of a string for the
|
95
|
-
validation_helpers :message option. This should allow much
|
96
|
-
easier internationalization support. If a proc is given, Sequel
|
97
|
-
calls it to get the format string to use. Whether the proc should
|
98
|
-
take an argument depends on whether the associated validation
|
99
|
-
method takes an argument before the array of columns to validate,
|
100
|
-
and the argument provided is what is passed to the proc. The
|
101
|
-
exception to this is the validates_not_string method, which doesn't
|
102
|
-
take an argument, but does pass one to the proc (a symbol with the
|
103
|
-
schema type of the column).
|
104
|
-
|
105
|
-
Combined with the above default option support, full
|
106
|
-
internationalization support for the validation_helpers plugin
|
107
|
-
should be fairly easy.
|
108
|
-
|
109
|
-
* The nested_attributes plugin now accepts a :fields option that
|
110
|
-
specifies the fields that are allowed. If specified, the
|
111
|
-
plugin will use set_only instead of set when mass assigning
|
112
|
-
attributes. Without this, the only way to control which fields
|
113
|
-
are allowed is to set allowed/restricted attributes at a class
|
114
|
-
level in the associated class.
|
115
|
-
|
116
|
-
* Associations now accept a :distinct option which uses the SQL
|
117
|
-
DISTINCT clause. This can be used instead of :uniq for
|
118
|
-
many_to_many and many_through_many associations to handle
|
119
|
-
the uniqueness in the database instead of in ruby. It can
|
120
|
-
also be useful for one_to_many associations to models that
|
121
|
-
don't have primary keys.
|
122
|
-
|
123
|
-
* The caching plugin now accepts an :ignore_exceptions option that
|
124
|
-
allows it to work with memcached (which raises exceptions instead
|
125
|
-
of returning nil for missing records).
|
126
|
-
|
127
|
-
* Sequel now emulates JOIN USING poorly using JOIN ON for databases
|
128
|
-
that don't support JOIN USING (MSSQL and H2). This isn't
|
129
|
-
guaranteed to work for all queries, since USING and ON have
|
130
|
-
different semantics, but should work in most cases.
|
131
|
-
|
132
|
-
* The MSSQL shared adapter now supports insert_select, for faster
|
133
|
-
model object creation. If for some reason you need to disable it,
|
134
|
-
you can use disable_insert_output.
|
135
|
-
|
136
|
-
* Model#modified! has been added which explicitly marks the object
|
137
|
-
as modified. So even if no column values have been modified,
|
138
|
-
calling save_changes/update will still run through the regular
|
139
|
-
save process and call all before and after save/update hooks.
|
140
|
-
|
141
|
-
* Model#marshallable! has been added which removes unmarshallable
|
142
|
-
attributes from the object. Previously, you couldn't marshal
|
143
|
-
a saved model object because it contained a dataset with a
|
144
|
-
singleton class. Custom _dump and _load methods could be used
|
145
|
-
instead, but this approach is easier to implement.
|
146
|
-
|
147
|
-
* Dataset#literal_other now calls sql_literal on the object with
|
148
|
-
the current dataset instance, if the object responds to it.
|
149
|
-
This makes it easier to support the literalization of arbitrary
|
150
|
-
objects.
|
151
|
-
|
152
|
-
Note that if the object is a subclass of a class handled by
|
153
|
-
an existing dataset literalization method, you cannot use this
|
154
|
-
method. You have to override the specific Dataset#literal_* method
|
155
|
-
in that case.
|
156
|
-
|
157
|
-
* Model#save_changes now accepts an option hash that is passed to
|
158
|
-
save:
|
159
|
-
|
160
|
-
album.save_changes(:validate=>false)
|
161
|
-
|
162
|
-
* A bunch of Dataset#*_join methods have been added, for specific
|
163
|
-
join types:
|
164
|
-
|
165
|
-
* cross_join
|
166
|
-
* natural_join
|
167
|
-
* full_join
|
168
|
-
* left_join
|
169
|
-
* right_join
|
170
|
-
* natural_full_join
|
171
|
-
* natural_left_join
|
172
|
-
* natural_right_join
|
173
|
-
|
174
|
-
Previously, you had to use join_table(:cross, ...) to use a CROSS
|
175
|
-
JOIN.
|
176
|
-
|
177
|
-
* You can now create clustered indexes on Microsoft SQL Server using
|
178
|
-
the :clustered option.
|
179
|
-
|
180
|
-
* AssociationReflection#associated_object_keys has been added,
|
181
|
-
specifying the keys in the associated model object that are related
|
182
|
-
to this association.
|
183
|
-
|
184
|
-
* Sequel::SQL::SQLArray#to_a was added.
|
185
|
-
|
186
|
-
Other Improvements
|
187
|
-
------------------
|
188
|
-
|
189
|
-
* Constant lookup in virtual row blocks now works correctly in ruby
|
190
|
-
1.9. Virtual row blocks are based on BasicObject on ruby 1.9,
|
191
|
-
which doesn't allow referencing objects in the top level scope. So
|
192
|
-
the following code would cause an error on 1.9:
|
193
|
-
|
194
|
-
DB[:bonds].filter{maturity_date > Time.now}
|
195
|
-
|
196
|
-
Sequel now uses a Sequel::BasicObject class on 1.9 with a
|
197
|
-
const_missing that looks up constants in Object, which allows the
|
198
|
-
above code to work.
|
199
|
-
|
200
|
-
* Sequel no longer attempts to load associated objects when
|
201
|
-
one of the key fields in the current table is NULL. This fixes
|
202
|
-
the behavior when the :primary_key option for the association
|
203
|
-
is used to point to a non-primary key.
|
204
|
-
|
205
|
-
A consequence of this change is that attempting to load a
|
206
|
-
*_to_many association for a new model object now returns
|
207
|
-
an empty array instead of raising an exception. This has its
|
208
|
-
own advantage of allowing the same association viewing code
|
209
|
-
to work on both new and existing objects. Previously, you had
|
210
|
-
to actively avoid calling the association method on new objects,
|
211
|
-
or Sequel would raise an exception.
|
212
|
-
|
213
|
-
* Dataset aggreate methods (sum/avg/min/max/range/interval) now
|
214
|
-
work correctly with limited, grouped, or compound datasets.
|
215
|
-
Previously, count worked with them, but other aggregate methods
|
216
|
-
did not. These methods now use a subquery if called on a
|
217
|
-
limited, grouped or compound dataset.
|
218
|
-
|
219
|
-
* It is no longer required to have an existing GROUP BY clause
|
220
|
-
to use a HAVING clause (except on SQLite, which doesn't permit
|
221
|
-
it). Sequel has always had this limitation, but it's not required
|
222
|
-
by the SQL standard, and there are valid reasons to use HAVING
|
223
|
-
without GROUP BY.
|
224
|
-
|
225
|
-
* Sequel will now emulate support for databases that don't support
|
226
|
-
multiple column IN/NOT IN syntax, such as MSSQL and SQLite:
|
227
|
-
|
228
|
-
ds.filter([:col1, :col2]=>[[1, 2], [3, 4]].sql_array)
|
229
|
-
# default: WHERE (col1, col2) IN ((1, 2), (3, 4))
|
230
|
-
# emulated: WHERE (((col1 = 1) AND (col2 = 2)) OR
|
231
|
-
# ((col1 = 3) AND (col2 = 4)))
|
232
|
-
|
233
|
-
This is necessary for eager loading associated objects for models
|
234
|
-
with composite primary keys.
|
235
|
-
|
236
|
-
* Sequel now emulates :column.ilike('blah%') for case insensitive
|
237
|
-
searches on MSSQL and H2. MSSQL is case insensitive by default,
|
238
|
-
so it is the same as like. H2 is case sensitive, so Sequel
|
239
|
-
uses a case insensitive cast there.
|
240
|
-
|
241
|
-
* The nested_attributes plugin no longer allows modification of
|
242
|
-
keys related to the association. This fixes a possible security
|
243
|
-
issue with the plugin, where a user could associate the nested
|
244
|
-
record to a different record. For example:
|
245
|
-
|
246
|
-
Artist.one_to_many :albums
|
247
|
-
Artist.plugin :nested_attributes
|
248
|
-
Artist.nested_attributes :albums
|
249
|
-
artist = Artist.create
|
250
|
-
artist2 = Artist.create
|
251
|
-
album = Album.create
|
252
|
-
artist.add_album(album)
|
253
|
-
artist.albums_attributes = [{:id=>album.id,
|
254
|
-
:artist_id=>artist2.id}]
|
255
|
-
artist.save
|
256
|
-
|
257
|
-
* The one_to_many remove_* association method now makes sure that the
|
258
|
-
object to be removed is currently associated to this object.
|
259
|
-
Before, the method could be abused to disassociate the object from
|
260
|
-
whatever object it was associated to.
|
261
|
-
|
262
|
-
* Model add_ and remove_ association methods now check that the passed
|
263
|
-
object is of the correct class.
|
264
|
-
|
265
|
-
* Calling the add_* association method no longer adds the record
|
266
|
-
to the cached association array if the object is already in the
|
267
|
-
array. Previously, Sequel did this for reciprocal associations,
|
268
|
-
but not for regular associations.
|
269
|
-
|
270
|
-
This makes the most sense for one_to_many associations, since
|
271
|
-
those can only be associated to the object once. For many_to_many
|
272
|
-
associations, if you want an option to disable the behavior, please
|
273
|
-
bring it up on the Sequel mailing list.
|
274
|
-
|
275
|
-
* An array with a string and placeholders that is passed to
|
276
|
-
Dataset#filter is no longer modified. Previously:
|
277
|
-
|
278
|
-
options = ["name like ?", "%dog%"]
|
279
|
-
DB[:players].where(options)
|
280
|
-
options # => ["%dog%"]
|
281
|
-
|
282
|
-
* Getting the most recently inserted autoincremented primary key
|
283
|
-
is now optimized when connecting to MySQL via JDBC.
|
284
|
-
|
285
|
-
* Model.inherited now calls Class.inherited.
|
286
|
-
|
287
|
-
* The MSSQL shared adapter once again works on ruby 1.9. It was
|
288
|
-
broken in 3.5.0 due to minor syntax issues.
|
289
|
-
|
290
|
-
* The force_encoding plugin now handles refreshing an existing
|
291
|
-
object, either explicitly or implicitly when new objects are
|
292
|
-
created.
|
293
|
-
|
294
|
-
To use the force_encoding plugin with the identity_map plugin, the
|
295
|
-
identity_map plugin should be loaded first.
|
296
|
-
|
297
|
-
* Using nil as a bound variable now works on PostgreSQL. Before,
|
298
|
-
Sequel would incorrectly use "" instead of NULL, since it
|
299
|
-
transformed all objects to strings before binding them. Sequel
|
300
|
-
now binds the objects directly.
|
301
|
-
|
302
|
-
* The Amalgalite adapter is now significantly faster, especially for
|
303
|
-
code that modifies the schema or submits arbitrary SQL statements
|
304
|
-
using Database <<, run, or execute_ddl.
|
305
|
-
|
306
|
-
* Model#save_changes is now used when updating existing associated
|
307
|
-
objects in the nested_attributes plugin. This should be
|
308
|
-
significantly faster for the common case of submitting a complex
|
309
|
-
form with nested objects without making modifications.
|
310
|
-
|
311
|
-
* You can now prepare insert statements that take multiple arguments,
|
312
|
-
such as insert(1, 2, 3) and insert(columns, values).
|
313
|
-
|
314
|
-
* Dataset#group_and_count now supports aliased columns.
|
315
|
-
|
316
|
-
* Adding indexes to tables outside the default schema now works.
|
317
|
-
|
318
|
-
* Eager graphing now works better with models that use aliased tables.
|
319
|
-
|
320
|
-
* Sequel now correctly parses the column schema information for tables
|
321
|
-
in a non-default schema on Microsoft SQL Server.
|
322
|
-
|
323
|
-
* changed_columns is now cleared for when saving new model objects
|
324
|
-
for adapters that support insert_select, such as PostgreSQL.
|
325
|
-
|
326
|
-
* Dataset#replace on MySQL now works correctly when default values
|
327
|
-
are used.
|
328
|
-
|
329
|
-
* Dataset#lock on PostgreSQL now works correctly.
|
330
|
-
|
331
|
-
* Dataset#explain now works correctly on SQLite, and works using
|
332
|
-
any adapter. It also works correctly on Amalgalite.
|
333
|
-
|
334
|
-
* The JDBC adapter now handles binding Time arguments correctly when
|
335
|
-
using prepared statements.
|
336
|
-
|
337
|
-
* Model add_ and remove_ association methods now have more
|
338
|
-
descriptive exception messages.
|
339
|
-
|
340
|
-
* Dataset#simple_select_all? now ignores options that don't affect
|
341
|
-
the SQL, such as :server.
|
342
|
-
|
343
|
-
* Dataset#window in the PostgreSQL adapter now respects existing
|
344
|
-
named windows.
|
345
|
-
|
346
|
-
* Sequel now better handles a failure to begin a new transaction.
|
347
|
-
|
348
|
-
* The dataset code was split into some additional files for improved
|
349
|
-
readability.
|
350
|
-
|
351
|
-
* Many documentation improvements were made.
|
352
|
-
|
353
|
-
Backwards Compatibility
|
354
|
-
-----------------------
|
355
|
-
|
356
|
-
* Model::Errors no longer uses a default proc, but emulates one in the
|
357
|
-
[] method. This is unlikely to have a negative affect unless you
|
358
|
-
are calling a method on it that doesn't call [] (maybe using it in
|
359
|
-
a C extension?).
|
360
|
-
|
361
|
-
* Model#table_name now only provides the alias if an aliased table is
|
362
|
-
used.
|
363
|
-
|
364
|
-
* The Sequel::Dataset::STOCK_COUNT_OPTS constant has been removed.
|
365
|
-
|
366
|
-
* Dataset#lock on PostgreSQL now returns nil instead of a dataset.
|
data/doc/release_notes/3.7.0.txt
DELETED
@@ -1,179 +0,0 @@
|
|
1
|
-
New Features
|
2
|
-
------------
|
3
|
-
|
4
|
-
* Sequel now has support for deleting and updating joined datasets
|
5
|
-
on MySQL and PostgreSQL. Previously, Sequel only supported this to
|
6
|
-
a limited extent on Microsoft SQL Server, and support there has been
|
7
|
-
improved as well.
|
8
|
-
|
9
|
-
This allows you to do:
|
10
|
-
|
11
|
-
DB.create_table!(:a){Integer :a; Integer :d}
|
12
|
-
DB.create_table!(:b){Integer :b; Integer :e}
|
13
|
-
DB.create_table!(:c){Integer :c; Integer :f}
|
14
|
-
|
15
|
-
# Insert some rows
|
16
|
-
|
17
|
-
ds = DB.from(:a, :b).
|
18
|
-
join(:c, :c=>:e.identifier).
|
19
|
-
where(:d=>:b)
|
20
|
-
ds.where(:f=>6).update(:a => 10)
|
21
|
-
ds.where(:f=>5).delete
|
22
|
-
|
23
|
-
Which will set the a column to 10 for all rows in table a, where
|
24
|
-
an associated row in table c (through table b) has a value of 6 for
|
25
|
-
column f. It will delete rows from table a where an associated row
|
26
|
-
in table c (through table b) has a value of 5 for column f.
|
27
|
-
|
28
|
-
Sequel assumes the that first FROM table is the table being
|
29
|
-
updated/deleted. MySQL and Microsoft SQL Server do not require
|
30
|
-
multiple FROM tables, but PostgreSQL does.
|
31
|
-
|
32
|
-
* Dataset #select_map, #select_order_map, and #select_hash
|
33
|
-
convenience methods were added for quickly creating arrays and
|
34
|
-
hashes from a dataset.
|
35
|
-
|
36
|
-
select_map and select_order_map both return arrays of values for the
|
37
|
-
column specified. The column can be specified either via an argument
|
38
|
-
or a block, similar to Dataset#get. Both accept any valid objects as
|
39
|
-
arguments.
|
40
|
-
|
41
|
-
select_hash returns a hash. It requires two symbol arguments, but
|
42
|
-
can handle implicit qualifiers or aliases in the symbols.
|
43
|
-
|
44
|
-
Neither of these methods offer any new functionality, they just cut
|
45
|
-
down on the number of required key strokes:
|
46
|
-
|
47
|
-
select_map(:column) # select(:column).map(:column)
|
48
|
-
select_order_map(:column) # select(:column).order(:column).
|
49
|
-
# map(:column)
|
50
|
-
select_hash(:key_column, :value_column)
|
51
|
-
# select(:key_column, :value_column).
|
52
|
-
# to_hash(:key_column, :value_column)
|
53
|
-
|
54
|
-
* The NULL, NOTNULL, TRUE, SQLTRUE, FALSE, and SQLFALSE constants
|
55
|
-
were added to Sequel::SQL::Constants. This allows you to do:
|
56
|
-
|
57
|
-
include Sequel::SQL::Constants
|
58
|
-
DB[:table].where(:a=>'1', :b=>NOTNULL)
|
59
|
-
|
60
|
-
Previously, the shortest way to do this was:
|
61
|
-
|
62
|
-
DB[:table].where(:a=>'1').exclude(:b=>nil)
|
63
|
-
|
64
|
-
It may make the code more descriptive:
|
65
|
-
|
66
|
-
DB[:table].where(:b=>NULL)
|
67
|
-
# compared to
|
68
|
-
DB[:table].where(:b=>nil)
|
69
|
-
|
70
|
-
This gives the option to use SQL terminology instead of ruby
|
71
|
-
terminology.
|
72
|
-
|
73
|
-
The other advantage of using the constants it that they handle
|
74
|
-
operators and methods like other Sequel::SQL objects:
|
75
|
-
|
76
|
-
NULL & SQLFALSE # BooleanExpression => "(NULL AND FALSE)"
|
77
|
-
nil & false # false
|
78
|
-
|
79
|
-
NULL + :a # NumericExpression => "(NULL + a)"
|
80
|
-
nil + :a # raises NoMethodError
|
81
|
-
NULL.sql_string + :a # StringExpression => "(NULL || a)"
|
82
|
-
NULL.as(:b) # AliasedExpression => "NULL AS b"
|
83
|
-
|
84
|
-
For complex systems that want to represent SQL boolean objects
|
85
|
-
in ruby (where you don't know exactly how they'll be used), using
|
86
|
-
the constants is recommended.
|
87
|
-
|
88
|
-
In order not to be too verbose, including Sequel::SQL::Constants
|
89
|
-
is recommended. It's not done by default, but you can still
|
90
|
-
reference the constants under the main Sequel module by default
|
91
|
-
(e.g. Sequel::NULL).
|
92
|
-
|
93
|
-
* The validates_unique method in the validation_helpers plugin now
|
94
|
-
supports an :only_if_modified option, which should speed up the
|
95
|
-
common case where the unique attribute is not modified for an
|
96
|
-
existing record. It's not on by default, since it's possible the
|
97
|
-
database could be changed between retrieving the model object and
|
98
|
-
updating it.
|
99
|
-
|
100
|
-
* The Dataset #union, #intersect, and #except methods now accept an
|
101
|
-
:alias option which is used as the alias for the returned dataset.
|
102
|
-
|
103
|
-
DB[:table].union(DB[:old_table], :alias=>:table)
|
104
|
-
|
105
|
-
* Model#destroy now supports a :transaction option, similar to
|
106
|
-
Model#save.
|
107
|
-
|
108
|
-
* The shared Oracle adapter now supports Dataset#sequence for
|
109
|
-
returning autogenerated primary key values on insert from a
|
110
|
-
related sequence.
|
111
|
-
|
112
|
-
This makes Oracle work correctly when using models, with
|
113
|
-
something like the following:
|
114
|
-
|
115
|
-
class Album < Sequel::Model
|
116
|
-
set_dataset dataset.sequence(:seq_albums_id)
|
117
|
-
end
|
118
|
-
|
119
|
-
You currently need to call Dataset#sequence in every model
|
120
|
-
class where the underlying table uses a sequence to generate
|
121
|
-
primary key values.
|
122
|
-
|
123
|
-
Other Improvements
|
124
|
-
------------------
|
125
|
-
|
126
|
-
* In Model #save and #destroy when using transactions and when
|
127
|
-
raise_on_save_failure is false, ensure that transactions are rolled
|
128
|
-
back if a before hook returns false.
|
129
|
-
|
130
|
-
* Dataset#group_and_count now handles arguments other than Symbols.
|
131
|
-
A previous change to the method raised an exception if a Symbol was
|
132
|
-
not provided. It also handles AliasedExpressions natively, so the
|
133
|
-
following works correctly:
|
134
|
-
|
135
|
-
DB[:table].group_and_count(:column.as(:alias))
|
136
|
-
|
137
|
-
* Sequel no longer uses native autoreconnection in the mysql adapter.
|
138
|
-
Native autoreconnection has problems with prepared statements,
|
139
|
-
where a new native connection is used behind Sequel's back, so
|
140
|
-
Sequel thinks the prepared statement has already been defined on
|
141
|
-
the connection, when it fact it hasn't. Any other changes that
|
142
|
-
affect the state of the connection will be lost when native
|
143
|
-
autoreconnection is used as well.
|
144
|
-
|
145
|
-
Sequel's connection pool already handles reconnection if it detects
|
146
|
-
a disconnection. This commit also adds an additional exception
|
147
|
-
message to recognize as a disconnect. If there other exception
|
148
|
-
messages related to disconnects, please post them on the Sequel
|
149
|
-
mailing list.
|
150
|
-
|
151
|
-
* The schema_dumper plugin now specifies the :type option for primary
|
152
|
-
key if it isn't Integer.
|
153
|
-
|
154
|
-
* On PostgreSQL, the bigserial type is used if :type=>Bignum is
|
155
|
-
given as an option to primary key. This makes it operate more
|
156
|
-
similarly to other adapters that support autoincrementing 64-bit
|
157
|
-
integer primary keys.
|
158
|
-
|
159
|
-
* The native mysql adapter will now attempt to load options in the
|
160
|
-
[client] section of the my.cnf file.
|
161
|
-
|
162
|
-
* The rake spec tasks for the project now work correctly with RSpec
|
163
|
-
1.2.9.
|
164
|
-
|
165
|
-
Backwards Compatibility
|
166
|
-
-----------------------
|
167
|
-
|
168
|
-
* Dataset::GET_ERROR_MSG and Dataset::MAP_ERROR_MSG constants were
|
169
|
-
removed. Both were replaced with Dataset::ARG_BLOCK_ERROR_MSG.
|
170
|
-
|
171
|
-
* The behavior of the Model#save_failure private instance method was
|
172
|
-
modified. It now always raises an exception, and validation
|
173
|
-
failures no longer call it.
|
174
|
-
|
175
|
-
* The internals of how autogenerated primary key metadata is stored
|
176
|
-
when creating tables on PostgreSQL has been modified.
|
177
|
-
|
178
|
-
* The native MySQL adapter no longer sets the OPT_LOCAL_INFILE option
|
179
|
-
to "client" on the native connection.
|
data/doc/release_notes/3.8.0.txt
DELETED
@@ -1,151 +0,0 @@
|
|
1
|
-
New Features
|
2
|
-
------------
|
3
|
-
|
4
|
-
* Dataset#each_server was added, allowing you to run the same query
|
5
|
-
(most likely insert/update/delete) on all shards. This is useful
|
6
|
-
if you have a sharded database but have lookup tables that should
|
7
|
-
be identical on all shards. It works by yielding copies of the
|
8
|
-
current dataset that are tied to each server/shard:
|
9
|
-
|
10
|
-
DB[:table].filter(:id=>1).each_server do |ds|
|
11
|
-
ds.update(:name=>'foo')
|
12
|
-
end
|
13
|
-
|
14
|
-
* Database#each_server was added, allowing you to run schema
|
15
|
-
modification methods on all shards. It works by yielding a
|
16
|
-
new Sequel::Database object for each shard, that will connect to
|
17
|
-
only that shard:
|
18
|
-
|
19
|
-
DB.each_server do |db|
|
20
|
-
db.create_table(:t){Integer :num}
|
21
|
-
end
|
22
|
-
|
23
|
-
* You can now add and remove servers/shards from the connection
|
24
|
-
pool while Sequel is running:
|
25
|
-
|
26
|
-
DB.add_servers(:shard1=>{:host=>'s1'}, :shard2=>{:host=>'s2'})
|
27
|
-
DB.remove_servers(:shard1, :shard2)
|
28
|
-
|
29
|
-
* When you attempt to disconnect from a server that has connections
|
30
|
-
currently in use, Sequel will now schedule those connections to
|
31
|
-
be disconnected when they are returned to the pool. Previously,
|
32
|
-
Sequel disconnected available connections, but ignored connections
|
33
|
-
currently in use, so it wasn't possible to guarantee complete
|
34
|
-
disconnection from the server. Even with this new feature, you can
|
35
|
-
only guarantee eventual disconnection, since disconnection of
|
36
|
-
connections in use happens asynchronously.
|
37
|
-
|
38
|
-
* Database#disconnect now accepts a :servers option specifying the
|
39
|
-
server(s) from which to disconnect. This should be a symbol or
|
40
|
-
array of symbols representing servers/shards. Only those specified
|
41
|
-
will be disconnected:
|
42
|
-
|
43
|
-
DB.disconnect(:servers=>[:shard1, :shard2])
|
44
|
-
|
45
|
-
* A validates_type validation was added to the validation_helpers
|
46
|
-
plugin. It allows you to check that a given column contains
|
47
|
-
the correct type. I can be helpful if you are also using the
|
48
|
-
serialization plugin to store serialized ruby objects, by making
|
49
|
-
sure that the objects are of the correct type (e.g. Hash):
|
50
|
-
|
51
|
-
def validate
|
52
|
-
validates_type(Hash, :options)
|
53
|
-
end
|
54
|
-
|
55
|
-
* Sequel::SQL::Expression#== is now supported for all expressions:
|
56
|
-
|
57
|
-
:column.qualify(:table).cast(:type) == \
|
58
|
-
:column.qualify(:table).cast(:type)
|
59
|
-
# => true
|
60
|
-
:column.qualify(:table).cast(:type) == \
|
61
|
-
:other_column.qualify(:table).cast(:type)
|
62
|
-
# => false
|
63
|
-
|
64
|
-
* When using the generic File type to create blob columns on
|
65
|
-
MySQL, you can specify the specific database type by using the
|
66
|
-
:size option (with :tiny, :medium, and :long values recognized):
|
67
|
-
|
68
|
-
DB.create_table(:docs){File :body, :size=>:long} # longblob
|
69
|
-
|
70
|
-
* The mysql adapter will now default to using mysqlplus, falling
|
71
|
-
back to use mysql. mysqlplus is significantly better for threaded
|
72
|
-
code because queries do not block the entire interpreter.
|
73
|
-
|
74
|
-
* The JDBC adapter is now able to detect certain types of disconnect
|
75
|
-
errors.
|
76
|
-
|
77
|
-
* ConnectionPool.servers and Database.servers were added, which
|
78
|
-
return an array of symbols specifying the servers/shards in use.
|
79
|
-
|
80
|
-
Other Improvements
|
81
|
-
------------------
|
82
|
-
|
83
|
-
* The single-threaded connection pool now raises
|
84
|
-
DatabaseConnectionErrors if unable to connect, so it now operates
|
85
|
-
more similarly to the default connection pool.
|
86
|
-
|
87
|
-
* The single-threaded connection pool now operates more similar
|
88
|
-
to the default connection pool when given a nonexistent server.
|
89
|
-
|
90
|
-
* PGErrors are now correctly converted to DatabaseErrors in the
|
91
|
-
postgres adapter when preparing statements or executing prepared
|
92
|
-
statements.
|
93
|
-
|
94
|
-
* DatabaseDisconnectErrors are now raised correctly in the postgres
|
95
|
-
adapter if the connection status is not OK after a query raises an
|
96
|
-
error.
|
97
|
-
|
98
|
-
* In the mysql adapter, multiple statements in a single query should
|
99
|
-
now be handled correctly in the all cases, not just when using
|
100
|
-
Dataset#each. So you can now submit multiple queries in a single
|
101
|
-
string to Database#run.
|
102
|
-
|
103
|
-
* Model object creation on Microsoft SQL Server 2000 once again
|
104
|
-
works correctly. Previously, an optimization was used that was
|
105
|
-
only supported on 2005+.
|
106
|
-
|
107
|
-
* Backslashes are no longer doubled inside string literals when
|
108
|
-
connecting to Microsoft SQL Server.
|
109
|
-
|
110
|
-
* The ORDER clause now correctly comes after the HAVING clause on
|
111
|
-
Microsoft SQL Server.
|
112
|
-
|
113
|
-
* Sequel now checks that there is an active transaction before
|
114
|
-
rolling back transactions on Microsoft SQL Server, since
|
115
|
-
there are cases where Microsoft SQL Server will roll back
|
116
|
-
transactions implicitly.
|
117
|
-
|
118
|
-
* Blobs are now handled correctly when connecting to H2.
|
119
|
-
|
120
|
-
* 64-bit integers are now handled correctly in JDBC prepared
|
121
|
-
statements.
|
122
|
-
|
123
|
-
* In the boolean_readers plugin, correctly handle columns not in
|
124
|
-
the db_schema, and don't raise an error if the model's columns
|
125
|
-
can't be determined.
|
126
|
-
|
127
|
-
* In the identity_map plugin, remove instances from the cache if they
|
128
|
-
are deleted or destroyed.
|
129
|
-
|
130
|
-
Backwards Compatibility
|
131
|
-
-----------------------
|
132
|
-
|
133
|
-
* Dataset::FROM_SELF_KEEP_OPTS was merged into
|
134
|
-
Dataset::NON_SQL_OPTIONS. While used in different places, they
|
135
|
-
were used for the same purpose, and entries missing from one should
|
136
|
-
have been included in the other.
|
137
|
-
|
138
|
-
* The connection pool internals changed substantially. Now,
|
139
|
-
ConnectionPool #allocated and #available_connections will return
|
140
|
-
nil instead of an array or hash if they are called with a
|
141
|
-
nonexistent server. These are generally only used internally,
|
142
|
-
though they are part of the public API. #created_count and #size
|
143
|
-
still return the size of the :default server when called with a
|
144
|
-
nonexistent server, though.
|
145
|
-
|
146
|
-
* The meta_eval and metaclass private methods were removed from
|
147
|
-
Sequel::MetaProgramming (only the meta_def public method remains).
|
148
|
-
If you want these methods, use the metaid gem.
|
149
|
-
|
150
|
-
* The irregular ox->oxen pluralization rule was removed from the
|
151
|
-
default inflections, as it screws up the more common box->boxes.
|