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,237 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A constraint_validations extension and plugin have been added,
|
4
|
-
which allow you to define validations when creating tables,
|
5
|
-
which are enforced by database constraints, and have those
|
6
|
-
validations be automatically discovered and used by your
|
7
|
-
Sequel::Model classes.
|
8
|
-
|
9
|
-
The extension is designed to be used in your migrations/schema
|
10
|
-
modification code:
|
11
|
-
|
12
|
-
DB.extension(:constraint_validations)
|
13
|
-
DB.create_constraint_validations_table
|
14
|
-
DB.create_table(:foos) do
|
15
|
-
primary_key :id
|
16
|
-
String :name
|
17
|
-
|
18
|
-
validate do
|
19
|
-
min_length 5, :name
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
This creates a database CHECK constraint that ensures that the
|
24
|
-
minimum length for the column is 5 characters. It also adds
|
25
|
-
metadata about the validation to the
|
26
|
-
sequel_constraint_validations table.
|
27
|
-
|
28
|
-
To have the model class automatically create validations, just
|
29
|
-
include the plugin in the model:
|
30
|
-
|
31
|
-
class Foo < Sequel::Model
|
32
|
-
plugin :constraint_validations
|
33
|
-
end
|
34
|
-
|
35
|
-
Note that MySQL does not enforce CHECK constraints (it parses
|
36
|
-
but ignores them), so using the extension on MySQL does not
|
37
|
-
actually enforce constraints at the database level, though it
|
38
|
-
still does support the automatic model validations if the plugin
|
39
|
-
is used.
|
40
|
-
|
41
|
-
* Dataset#count now takes an argument or a virtual row block,
|
42
|
-
allowing you to do:
|
43
|
-
|
44
|
-
DB[:table].count(:column_name)
|
45
|
-
DB[:table].count{function_name(column1, column2)}
|
46
|
-
|
47
|
-
When count is given an argument, instead of returning the total
|
48
|
-
number of rows, it returns the number of rows where the
|
49
|
-
argument has a non-NULL value.
|
50
|
-
|
51
|
-
* Database#copy_into has been added to the postgres adapter when
|
52
|
-
the pg driver is being used, and can be used for very fast
|
53
|
-
inserts into tables if you already have the input preformatted
|
54
|
-
in PostgreSQL text or CSV format.
|
55
|
-
|
56
|
-
* set_table_not_null has been added to the alter table generator,
|
57
|
-
for a nicer API:
|
58
|
-
|
59
|
-
alter_table(:t){set_column_not_null :col}
|
60
|
-
# instead of
|
61
|
-
alter_table(:t){set_column_allow_null :col, false}
|
62
|
-
|
63
|
-
Additionally, set_column_allow_null now defaults the second
|
64
|
-
argument to true for a nicer API:
|
65
|
-
|
66
|
-
alter_table(:t){set_column_allow_null :col}
|
67
|
-
# instead of
|
68
|
-
alter_table(:t){set_column_allow_null :col, true}
|
69
|
-
|
70
|
-
* Database#supports_regexp? has been added for checking if the
|
71
|
-
database supports Regexp in filters. Currently, only MySQL and
|
72
|
-
PostgreSQL support Regexps.
|
73
|
-
|
74
|
-
Attempting to use a Regexp on a database that doesn't support it
|
75
|
-
now raises an error when attempting to generate the SQL, instead
|
76
|
-
of sending invalid SQL to the database.
|
77
|
-
|
78
|
-
* Sequel.char_length has been added for a cross platform
|
79
|
-
char_length function (emulated when char_length is not supported
|
80
|
-
natively by the database).
|
81
|
-
|
82
|
-
* Sequel.trim has been added for a cross platform trim function
|
83
|
-
(emulated when trim is not supported natively by the database).
|
84
|
-
|
85
|
-
* ValidationFailed and HookFailed exceptions now have a model method
|
86
|
-
that returns the model instance related to the exception. This
|
87
|
-
makes it possible to use Model.create inside a begin/rescue block
|
88
|
-
and get access to the underlying instance if there is a validation
|
89
|
-
or before/around hook error.
|
90
|
-
|
91
|
-
* The subclasses plugin now accepts a block, which is called with
|
92
|
-
each model class created. This is useful if you want to apply
|
93
|
-
changes to classes created in the future instead of just existing
|
94
|
-
classes.
|
95
|
-
|
96
|
-
* The validates_unique validation in the validation_helpers plugin
|
97
|
-
now accepts a :where option for a custom uniqueness filter. Among
|
98
|
-
other things this makes it easy to implement a case insensitive
|
99
|
-
uniqueness validation on a case sensitive column.
|
100
|
-
|
101
|
-
* The threaded connection pools now support a
|
102
|
-
:connection_handling=>:disconnect option, which makes them disconnect
|
103
|
-
connections after use instead of returning them to the pool. This
|
104
|
-
makes it possible to completely control connection lifetime using
|
105
|
-
Database#synchronize.
|
106
|
-
|
107
|
-
* The pg_row_op extension now has support for PGRowOp#*, for referencing
|
108
|
-
the members of the composite type as separate columns.
|
109
|
-
|
110
|
-
* MySQL's set type and default value are now recognized.
|
111
|
-
|
112
|
-
* bin/sequel now accepts a -c argument for running an arbitrary
|
113
|
-
code string instead of using an IRB prompt.
|
114
|
-
|
115
|
-
= Other Improvements
|
116
|
-
|
117
|
-
* Sequel now parses current date/timestamp column defaults when
|
118
|
-
parsing the schema for a table. The values will be returned
|
119
|
-
as Sequel::CURRENT_DATE for date columns and
|
120
|
-
Sequel::CURRENT_TIMESTAMP for timestamp columns.
|
121
|
-
|
122
|
-
The schema_dumper extension will work with these defaults, so
|
123
|
-
if you dump the schema for a table with a column that uses
|
124
|
-
a current timestamp default, the dumped schema will include
|
125
|
-
the default.
|
126
|
-
|
127
|
-
The defaults setter plugin also works with these changes, so
|
128
|
-
that when new model objects are instantiated, they get the
|
129
|
-
current Date/Time/DateTime values set.
|
130
|
-
|
131
|
-
* On MySQL and PostgreSQL, Sequel will now by default attempt
|
132
|
-
to combine multiple alter_table operations into a single
|
133
|
-
query where it believes it can do so correctly. This can
|
134
|
-
potentially improve performance ~N times, where N is the number
|
135
|
-
of alter table operations.
|
136
|
-
|
137
|
-
This can change the SQL used for old migrations (though it
|
138
|
-
shouldn't change the result), and is a potentially risky
|
139
|
-
change. This may be disabled by default in future versions
|
140
|
-
if it causes problems.
|
141
|
-
|
142
|
-
* The defaults_setter plugin now correctly sets false default
|
143
|
-
values.
|
144
|
-
|
145
|
-
* The schema_dumper plugin now preserves fractional seconds
|
146
|
-
in timestamp column defaults when dumping.
|
147
|
-
|
148
|
-
* Time->DateTime and DateTime->Time typecasts now retain
|
149
|
-
fractional seconds on ruby 1.8.
|
150
|
-
|
151
|
-
* Array arguments passed to most PGArrayOp methods are now
|
152
|
-
automatically wrapped in a PGArray. If you want to use this
|
153
|
-
support, you need to make sure to load both the pg_array
|
154
|
-
and pg_array_op extensions.
|
155
|
-
|
156
|
-
* Sequel now does a better job of finding the sequence for a
|
157
|
-
given table on PostgreSQL, handling more corner cases. A small
|
158
|
-
side effect of this is sometimes sequence names will be quoted.
|
159
|
-
|
160
|
-
* Some potential thread-safety issues when using Sequel with
|
161
|
-
PostgreSQL on a non-GVL ruby implementation have been fixed.
|
162
|
-
|
163
|
-
* Sequel now correctly caches the server version query on MySQL.
|
164
|
-
|
165
|
-
* Sets of alter_table operations on MySQL and Microsoft SQL Server
|
166
|
-
that require parsing the current database schema, where later
|
167
|
-
alter_table operations depend on earlier ones, should now work
|
168
|
-
correctly.
|
169
|
-
|
170
|
-
* You can now drop check constraints on tables on SQLite, though
|
171
|
-
doing so drops all check constraints on the table, not only the
|
172
|
-
specific check constraint given.
|
173
|
-
|
174
|
-
* The identity_map plugin no longer breaks if used with a model
|
175
|
-
without a primary key.
|
176
|
-
|
177
|
-
* Sequel::SQL::NegativeBooleanConstant now inherits from Constant
|
178
|
-
instead of BooleanConstant. This means that
|
179
|
-
|
180
|
-
Sequel::NULL == Sequel::NOTNULL
|
181
|
-
|
182
|
-
is now false instead of true.
|
183
|
-
|
184
|
-
* You can now override the convert_tinyint_to_bool settings on a
|
185
|
-
per-Dataset basis in the mysql and mysql2 adapters, though
|
186
|
-
the overriding is different depending on the adapter. Check the
|
187
|
-
commit log for details.
|
188
|
-
|
189
|
-
* timestamp(N) types are now recognized as datetime, which should
|
190
|
-
fix certain cases on Oracle.
|
191
|
-
|
192
|
-
* Dataset#insert now handles a single model instance argument
|
193
|
-
as a single value if the model uses the pg_row plugin.
|
194
|
-
|
195
|
-
* When joining a model dataset using a model class as the table
|
196
|
-
argument, a subselect is used unless the model is a simple select
|
197
|
-
from the underlying table.
|
198
|
-
|
199
|
-
* The specs now cleanup after themselves, dropping the tables that
|
200
|
-
they create for testing.
|
201
|
-
|
202
|
-
= Backwards Compatibility
|
203
|
-
|
204
|
-
* The defaults_setter plugin's behavior changed due to the
|
205
|
-
current date/timestamp support. Previously, it would not set
|
206
|
-
a value for the column, since the default wasn't recognized.
|
207
|
-
Therefore, the database would use the default value on insert,
|
208
|
-
which would be the database's current timestamp.
|
209
|
-
|
210
|
-
Now, the value is set to the current Date/Time/DateTime on
|
211
|
-
model object instantiation, so the database wouldn't use the
|
212
|
-
column default. Instead of the database's current timestamp
|
213
|
-
on insert, the column value will be the application's
|
214
|
-
current timestamp on model instantiation.
|
215
|
-
|
216
|
-
Users who don't want this behavior can remove the default values
|
217
|
-
in the model:
|
218
|
-
|
219
|
-
Model.default_values.delete(:column_name)
|
220
|
-
|
221
|
-
* Plain (non-model) datasets no longer allow insert to accept
|
222
|
-
a single model instance argument. Also, they no longer call
|
223
|
-
values on a single argument if the object responds to it.
|
224
|
-
|
225
|
-
* Plain (non-model) datasets no longer accept model classes as
|
226
|
-
tables in the join/graph methods. Also, they no longer call
|
227
|
-
table_name on the argument if the object responds to it.
|
228
|
-
|
229
|
-
* The schema_dumper extension now requires the eval_inspect
|
230
|
-
extension, which changes inspect output for
|
231
|
-
Sequel::SQL::Expression objects.
|
232
|
-
|
233
|
-
* Custom adapters that override Database#alter_table_sql_list now
|
234
|
-
need to make sure it returns an already flattened array.
|
235
|
-
|
236
|
-
* The identity_map_key method in the identity_map plugin now returns
|
237
|
-
nil instead of a random string if the given pk is nil.
|
data/doc/release_notes/3.4.0.txt
DELETED
@@ -1,325 +0,0 @@
|
|
1
|
-
New Plugins
|
2
|
-
-----------
|
3
|
-
|
4
|
-
* A nested_attributes plugin was added allowing you to modify
|
5
|
-
associated objects directly through a model object, similar to
|
6
|
-
ActiveRecord's Nested Attributes.
|
7
|
-
|
8
|
-
Artist.plugin :nested_attributes
|
9
|
-
Artist.one_to_many :albums
|
10
|
-
Artist.nested_attributes :albums
|
11
|
-
a = Artist.new(:name=>'YJM',
|
12
|
-
:albums_attributes=>[{:name=>'RF'}, {:name=>'MO'}])
|
13
|
-
# No database activity yet
|
14
|
-
|
15
|
-
a.save # Saves artist and both albums
|
16
|
-
a.albums.map{|x| x.name} # ['RF', 'MO']
|
17
|
-
|
18
|
-
It takes most of the same options as ActiveRecord, as well as a
|
19
|
-
a few additional options:
|
20
|
-
|
21
|
-
* :destroy - Allow destruction of nested records.
|
22
|
-
* :limit - For *_to_many associations, a limit on the number of
|
23
|
-
records that will be processed, to prevent denial of service
|
24
|
-
attacks.
|
25
|
-
* :remove - Allow disassociation of nested records (can remove the
|
26
|
-
associated object from the parent object, but not destroy the
|
27
|
-
associated object).
|
28
|
-
* :strict - Set to false to not raise an error message if a primary
|
29
|
-
key is provided in a record, but it doesn't match an existing
|
30
|
-
associated object.
|
31
|
-
|
32
|
-
If a block is provided, it is passed each nested attribute hash.
|
33
|
-
If the hash should be ignored, the block should return anything
|
34
|
-
except false or nil.
|
35
|
-
|
36
|
-
* A timestamps plugin was added for automatically adding
|
37
|
-
before_create and before_update hooks for setting values on
|
38
|
-
timestamp columns. There are a couple of existing external
|
39
|
-
plugins that handle timestamps, but the implementations are
|
40
|
-
suboptimal. The new built-in plugin supports the following
|
41
|
-
options (with the default in parentheses):
|
42
|
-
|
43
|
-
* :create - The field to hold the create timestamp (:created_at)
|
44
|
-
* :force - Whether to overwrite an existing create timestamp
|
45
|
-
(false)
|
46
|
-
* :update - The field to hold the update timestamp (:updated_at)
|
47
|
-
* :update_on_create - Whether to set the update timestamp to the
|
48
|
-
create timestamp when creating (false)
|
49
|
-
|
50
|
-
* An instance_hooks plugin was added for adding hooks to specific
|
51
|
-
w
|
52
|
-
model instances:
|
53
|
-
|
54
|
-
obj = Model.new
|
55
|
-
obj.after_save_hook{do_something}
|
56
|
-
obj.save # calls do_something after the obj has been saved
|
57
|
-
|
58
|
-
All of the standard hooks are supported, except for
|
59
|
-
after_initialize. Instance level before hooks are executed in
|
60
|
-
reverse order of addition before calling super. Instance level
|
61
|
-
after hooks are executed in order of addition after calling super.
|
62
|
-
If any of the instance level before hook blocks return false, no
|
63
|
-
more instance level before hooks are called and false is returned.
|
64
|
-
|
65
|
-
Instance level hooks are cleared when the object is saved
|
66
|
-
successfully.
|
67
|
-
|
68
|
-
* A boolean_readers plugin was added for creating attribute? methods
|
69
|
-
for boolean columns. This can provide a nicer API:
|
70
|
-
|
71
|
-
obj = Model[1]
|
72
|
-
obj.active # Sequel default column reader
|
73
|
-
obj.active? # Using the boolean_readers plugin
|
74
|
-
|
75
|
-
You can provide a block when loading the plugin to change the
|
76
|
-
criteria used to determine if the column is boolean:
|
77
|
-
|
78
|
-
Sequel::Model.plugin(:boolean_readers) do |c|
|
79
|
-
db_schema[c][:db_type] =~ /\Atinyint/
|
80
|
-
end
|
81
|
-
|
82
|
-
This may be useful if you are using MySQL and have some tinyint
|
83
|
-
columns that represent booleans and others that represent integers.
|
84
|
-
You can turn the convert_tinyint_to_bool setting off and use the
|
85
|
-
attribute methods for the integer value and the attribute? methods
|
86
|
-
for the boolean value.
|
87
|
-
|
88
|
-
Other New Features
|
89
|
-
------------------
|
90
|
-
|
91
|
-
* Sequel now has support for converting Time/DateTime to local or UTC
|
92
|
-
time upon storage, retrieval, or typecasting.
|
93
|
-
|
94
|
-
There are three different timezone settings:
|
95
|
-
|
96
|
-
* Sequel.database_timezone - The timezone that timestamps use in
|
97
|
-
the database. If the database returns a time without an offset,
|
98
|
-
it is assumed to be in this timezone.
|
99
|
-
|
100
|
-
* Sequel.typecast_timezone - Similar to database_timezone, but used
|
101
|
-
for typecasting data from a source other than the database. This
|
102
|
-
is currently only used by the model typecasting code.
|
103
|
-
|
104
|
-
* Sequel.application_timezone - The timezone that the application
|
105
|
-
wants to deal with. All Time/DateTime objects are converted into
|
106
|
-
this timezone upon retrieval from the database.
|
107
|
-
|
108
|
-
Unlike most things in Sequel, these are only global settings, you
|
109
|
-
cannot change them per database. There are only three valid
|
110
|
-
timezone settings:
|
111
|
-
|
112
|
-
* nil (the default) - Don't do any timezone conversion. This is
|
113
|
-
the historical behavior.
|
114
|
-
|
115
|
-
* :local - Convert to local time/Consider time to be in local time.
|
116
|
-
|
117
|
-
* :utc - Convert to UTC/Consider time to be in UTC.
|
118
|
-
|
119
|
-
So if you want to store times in the database as UTC, but deal with
|
120
|
-
them in local time in the application:
|
121
|
-
|
122
|
-
Sequel.application_timezone = :local
|
123
|
-
Sequel.database_timezone = :utc
|
124
|
-
|
125
|
-
If you want to set all three timezones to the same value:
|
126
|
-
|
127
|
-
Sequel.default_timezone = :utc
|
128
|
-
|
129
|
-
There are three conversion methods that are called:
|
130
|
-
|
131
|
-
* Sequel.database_to_application_timestamp - Called on time objects
|
132
|
-
coming out of the database. If the object coming out of the
|
133
|
-
database (usually a string) does not have an offset, assume it is
|
134
|
-
already in the database_timezone. Return a Time/DateTime object
|
135
|
-
(depending on Sequel.datetime_class), in the application_timzone.
|
136
|
-
|
137
|
-
* Sequel.application_to_database_timestamp - Used when literalizing
|
138
|
-
Time/DateTime objects into an SQL string. Converts the object to
|
139
|
-
the database_timezone before literalizing them.
|
140
|
-
|
141
|
-
* Sequel.typecast_to_application_timestamp - Called when
|
142
|
-
typecasting objects for model datetime columns. If the object
|
143
|
-
being typecasted does not already have an offset, assume it is
|
144
|
-
already in the typecast_timezone. Return a Time/DateTime object
|
145
|
-
(depending on Sequel.datetime_class), in the
|
146
|
-
application_timezone.
|
147
|
-
|
148
|
-
Sequel does not yet support named timezones or per thread
|
149
|
-
modification of the timezone (for showing all timestamps in the
|
150
|
-
current user's timezone). Extensions to support both features are
|
151
|
-
planned for a future version.
|
152
|
-
|
153
|
-
* Dataset#truncate was added for truncating tables. Truncate allows
|
154
|
-
for fast removal of all rows in a table.
|
155
|
-
|
156
|
-
* Sequel now supports typecasting a hash to date, time, and datetime
|
157
|
-
types. This allows easy usage of Sequel with forms that split
|
158
|
-
the entry of these database types into separate from fields.
|
159
|
-
With this code, you can just have field names like:
|
160
|
-
|
161
|
-
date[year]
|
162
|
-
date[month]
|
163
|
-
date[day]
|
164
|
-
|
165
|
-
Rack will parse that into:
|
166
|
-
|
167
|
-
{'date'=>{'year'=>?, 'month'=>?, 'day'=>?}}
|
168
|
-
|
169
|
-
So then you can do:
|
170
|
-
|
171
|
-
obj.date = params['date']
|
172
|
-
# or
|
173
|
-
obj.set(params)
|
174
|
-
|
175
|
-
* validates_unique now takes a block that can be used to scope the
|
176
|
-
uniqueness constraint. This allows you to easily set up uniqueness
|
177
|
-
validations that are only necessary in a given scope. For example,
|
178
|
-
a validation on username, but only for active users (as inactive
|
179
|
-
users are soft deleted but remain in the table). You just pass a
|
180
|
-
block to validates_unique:
|
181
|
-
|
182
|
-
validates_unique(:name){|ds| ds.filter(:active)}
|
183
|
-
|
184
|
-
* The serialization plugin now supports json.
|
185
|
-
|
186
|
-
* Sequel now supports generic concepts of
|
187
|
-
CURRENT_{DATE,TIME,TIMESTAMP}. Most databases support these SQL
|
188
|
-
concepts, but not all, and some implementations act differently.
|
189
|
-
|
190
|
-
The Sequel::SQL::Constants module holds the three constants,
|
191
|
-
which are instances of SQL::Constant, an SQL::GenericExpression
|
192
|
-
subclass. This module is included in Sequel, so you can reference
|
193
|
-
the constants more easily (e.g. Sequel::CURRENT_TIMESTAMP).
|
194
|
-
It's separated out into a separate module so that you can just
|
195
|
-
include that module in the top level scope, allowing you to
|
196
|
-
reference the constants directly (e.g. CURRENT_TIMESTAMP).
|
197
|
-
|
198
|
-
DB[:events].filter{date < ::Sequel::CURRENT_DATE}
|
199
|
-
# or:
|
200
|
-
include Sequel::SQL::Constants
|
201
|
-
DB[:events].filter{date < ::CURRENT_DATE}
|
202
|
-
|
203
|
-
* Database#run was added for executing arbitrary SQL on a database.
|
204
|
-
It's an alias for Database#<<, but it allows for a nicer API inside
|
205
|
-
migrations, since you can now do:
|
206
|
-
|
207
|
-
run 'SQL'
|
208
|
-
|
209
|
-
instead of:
|
210
|
-
|
211
|
-
self << 'SQL'
|
212
|
-
|
213
|
-
You can also provide a :server option to run the SQL on the
|
214
|
-
given server/shard:
|
215
|
-
|
216
|
-
run 'SQL', :server=>:shard1
|
217
|
-
|
218
|
-
* Sequel::Model() can now take a database argument in addition to
|
219
|
-
a symbol or dataset argument. If a database is given, it'll create
|
220
|
-
an anonymous subclass attached to the given database. Other changes
|
221
|
-
were made to allow the following code to work:
|
222
|
-
|
223
|
-
class Item < Sequel::Model(DB2)
|
224
|
-
end
|
225
|
-
|
226
|
-
That will work correctly assuming a table named items in DB2.
|
227
|
-
|
228
|
-
* Dataset#ungrouped was added for removing a grouping from an
|
229
|
-
existing dataset. Also, Dataset#group when called with no arguments
|
230
|
-
or with a nil argument also removes any existing grouping instead
|
231
|
-
of resulting in invalid SQL.
|
232
|
-
|
233
|
-
* Model#modified? was added, letting you know if the model has been
|
234
|
-
modified. If the model hasn't been modified, calling
|
235
|
-
Model#save_changes will do nothing.
|
236
|
-
|
237
|
-
* SQL::OrderedExpression now supports #asc, #desc, and #invert.
|
238
|
-
|
239
|
-
Other Improvements
|
240
|
-
------------------
|
241
|
-
|
242
|
-
* The serialization and lazy_attribute plugins now add accessor
|
243
|
-
methods to a module included in the class, instead of to the
|
244
|
-
model class itself. This allows the methods to be overridden
|
245
|
-
in the class and work well with super, as well for the plugins
|
246
|
-
to work together on the same column. Make sure the
|
247
|
-
lazy_attributes accessor is setup before the serialization
|
248
|
-
accessor if you want to have a lazy serialized column.
|
249
|
-
|
250
|
-
* Calling the add_* method for many_to_many association now saves the
|
251
|
-
record if the record is new. This makes it operate more similarly
|
252
|
-
to one_to_many associations. Previously, it raised an Error.
|
253
|
-
|
254
|
-
* Dataset#import now works correctly when called with a dataset.
|
255
|
-
Previously, it generated incorrect SQL.
|
256
|
-
|
257
|
-
* The JDBC adapter now converts byte arrays to/from SQL::Blob.
|
258
|
-
|
259
|
-
* The JDBC adapter now attempts to bind unknown types using
|
260
|
-
setObject instead of raising, so it can work with native Java
|
261
|
-
objects. It also binds boolean parameters correctly.
|
262
|
-
|
263
|
-
* Using multiple emulated ALTER TABLE statements (such as
|
264
|
-
drop_column) in a single alter_table block now works correctly
|
265
|
-
on SQLite.
|
266
|
-
|
267
|
-
* Database#indexes now works on JDBC for tables in a non-default
|
268
|
-
schema. It also now properly detects unique indexes on MSSQL.
|
269
|
-
|
270
|
-
* Database#schema on JDBC now accepts a :schema option. Also,
|
271
|
-
returned schema hashes now include a :column_size entry specifying
|
272
|
-
the maximum length/precision for the column, since the
|
273
|
-
:db_type entry doesn't have contain the information on JDBC.
|
274
|
-
|
275
|
-
* Datasets without tables now work correctly on Oracle, so things
|
276
|
-
like DB.get(...) now work.
|
277
|
-
|
278
|
-
* A descriptive error message is given if you attempt to use
|
279
|
-
Sequel with the mysql.rb driver (which Sequel doesn't support).
|
280
|
-
|
281
|
-
* The postgres adapter now works correctly with a modified
|
282
|
-
postgres-pr that raises PGErrors instead of RuntimeErrors
|
283
|
-
(e.g. http://github.com/jeremyevans/postgres-pr).
|
284
|
-
|
285
|
-
* You now get a Sequel::InvalidOperation instead of a NoMethodError
|
286
|
-
if you attempt to update a dataset without a table.
|
287
|
-
|
288
|
-
* The inflection support has been modified to reduce code
|
289
|
-
duplication.
|
290
|
-
|
291
|
-
Backwards Compatibility
|
292
|
-
-----------------------
|
293
|
-
|
294
|
-
* Sequel now includes fractional seconds in timestamps for all
|
295
|
-
adapters except MySQL. It's possible that this may break
|
296
|
-
timestamp columns for databases that are not regularly tested.
|
297
|
-
|
298
|
-
* Sequel now includes timezone values in timestamps on Microsoft
|
299
|
-
SQL Server, Oracle, PostgreSQL and SQLite. The modification for
|
300
|
-
SQLite is probably the biggest cause for concern, since SQLite
|
301
|
-
stores times as text. If you have an SQLite database that uses
|
302
|
-
timestamps and is accessed by something other than Sequel, you
|
303
|
-
should make sure that it works with the timestamp format that
|
304
|
-
Sequel now uses.
|
305
|
-
|
306
|
-
* The default timestamp format used by Sequel now uses a space
|
307
|
-
instead of 'T' between the date and time parts, which could
|
308
|
-
possibly affect some databases that are not regularly tested.
|
309
|
-
|
310
|
-
* Attempting to insert into a grouped dataset or a dataset that
|
311
|
-
selects from multiple tables will now raise an Error. Previously,
|
312
|
-
it would ignore any GROUP or JOIN settings and generate bad SQL if
|
313
|
-
there were multiple FROM tables.
|
314
|
-
|
315
|
-
* Database#<< now always returns nil. Before, the return value was
|
316
|
-
adapter dependent.
|
317
|
-
|
318
|
-
* ODBC::Time and ODBC::DateTime values are now converted to the
|
319
|
-
Sequel.datetime_class. Before, ODBC::Time used Time and
|
320
|
-
ODBC::DateTime used DateTime regardless of the
|
321
|
-
Sequel.datetime_class setting.
|
322
|
-
|
323
|
-
* The default inflections were modified, fixing some obvious errors
|
324
|
-
and possibly changing some existing inflections. Further changes
|
325
|
-
to the default inflections are unlikely.
|
@@ -1,73 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Sequel now has vastly improved support for Microsoft Access.
|
4
|
-
|
5
|
-
* Sequel now supports the CUBRID database, with a cubrid adapter
|
6
|
-
that uses the cubrid gem, and a jdbc/cubrid adapter for accessing
|
7
|
-
CUBRID via JDBC on JRuby.
|
8
|
-
|
9
|
-
* The association_pks plugin now supports composite keys.
|
10
|
-
|
11
|
-
* Database#transaction now accepts a :disconnect=>:retry option,
|
12
|
-
in which case it will automatically retry the block if it
|
13
|
-
detects a disconnection. This is potentially dangerous, and
|
14
|
-
should only be used if the entire block is idempotent. There
|
15
|
-
is also no checking against an infinite retry loop.
|
16
|
-
|
17
|
-
* SQL::CaseExpression#with_merged_expression has been added, for
|
18
|
-
converting a CaseExpression with an associated expression to
|
19
|
-
one without an associated expression, by merging the expression
|
20
|
-
into each condition.
|
21
|
-
|
22
|
-
= Other Improvements
|
23
|
-
|
24
|
-
* Sequel now quotes arguments/columns in common table expressions.
|
25
|
-
|
26
|
-
* Sequel now handles nil values correctly in the pg_row extension.
|
27
|
-
|
28
|
-
* Sequel::Postgres::HStore instances can now be marshalled.
|
29
|
-
|
30
|
-
* Sequel now uses clob for String :text=>true types on databases that
|
31
|
-
don't support a text type.
|
32
|
-
|
33
|
-
* On PostgreSQL, Sequel now quotes channel identifier names when using
|
34
|
-
LISTEN/NOTIFY.
|
35
|
-
|
36
|
-
* On PostgreSQL, Sequel now correctly handles the case where named
|
37
|
-
type conversion procs have been added before the Database object is
|
38
|
-
instantiated.
|
39
|
-
|
40
|
-
* On DB2, Sequel now explicitly sets NOT NULL for unique constraint
|
41
|
-
columns instead of foreign key columns. DB2 does not allow columns
|
42
|
-
in unique constraints to be NULL, but does allow foreign key columns
|
43
|
-
to be NULL.
|
44
|
-
|
45
|
-
* In the oracle adapter, clob values are now returned as ruby strings
|
46
|
-
upon retrieval.
|
47
|
-
|
48
|
-
* Sequel now detects more types of disconnections in the postgres,
|
49
|
-
mysql, and mysql2 adapters.
|
50
|
-
|
51
|
-
* If a database provides a default column value that isn't a ruby
|
52
|
-
string, it is used directly as the ruby default, instead of causing
|
53
|
-
the schema parsing to fail.
|
54
|
-
|
55
|
-
= Backwards Compatibility
|
56
|
-
|
57
|
-
* Code using Sequel's oracle adapter that expected clob values to be
|
58
|
-
returned as OCI8::CLOB instances needs to be modified to work with
|
59
|
-
ruby strings.
|
60
|
-
|
61
|
-
* Because Sequel now quotes column names in common table expressions,
|
62
|
-
those names are now case sensitive, which could break certain poorly
|
63
|
-
coded queries. Similar issues exist with the quoting of channel
|
64
|
-
identifier names in LISTEN/NOTIFY on PostgreSQL.
|
65
|
-
|
66
|
-
* The private Database#requires_return_generated_keys? method
|
67
|
-
has been removed from the jdbc adapter. Custom jdbc subadapters
|
68
|
-
relying on this method should override the private
|
69
|
-
Database#execute_statement_insert method instead to ensure that
|
70
|
-
RETURN_GENERATED_KEYS is used for insert statements.
|
71
|
-
|
72
|
-
* The private Dataset#argument_list and #argument_list_append methods
|
73
|
-
have been removed.
|