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,338 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* Database#extension and Dataset#extension have been added and
|
4
|
-
make it much easier to use extensions that just define modules,
|
5
|
-
where you previously had to manually extend a Database or
|
6
|
-
Dataset object with the module to get the extension's behavior.
|
7
|
-
These methods operate similarly to model plugins, where you just
|
8
|
-
specify the extension symbol, except that you can specify multiple
|
9
|
-
extensions at once:
|
10
|
-
|
11
|
-
DB.extension(:pg_array, :pg_hstore)
|
12
|
-
|
13
|
-
For databases, these modify the Database itself (and
|
14
|
-
potentially all of its datasets). Dataset#extension operates
|
15
|
-
like other dataset methods, returning a modified clone of
|
16
|
-
the dataset with the extension added:
|
17
|
-
|
18
|
-
dataset = dataset.extension(:columns_introspection)
|
19
|
-
|
20
|
-
Dataset#extension! has also been added for modifying the
|
21
|
-
receiver instead of returning a clone.
|
22
|
-
|
23
|
-
Not all extensions are usable by Database#extension or
|
24
|
-
Dataset#extension, the extension has to have specific support
|
25
|
-
for it. The following extensions support both
|
26
|
-
Database#extension and Dataset#extension:
|
27
|
-
|
28
|
-
* columns_introspection
|
29
|
-
* query_literals
|
30
|
-
* split_array_nil
|
31
|
-
|
32
|
-
The following extensions support just Database#extension:
|
33
|
-
|
34
|
-
* arbitrary_servers
|
35
|
-
* looser_typecasting
|
36
|
-
* pg_array
|
37
|
-
* pg_auto_parameterize
|
38
|
-
* pg_hstore
|
39
|
-
* pg_inet
|
40
|
-
* pg_interval
|
41
|
-
* pg_json
|
42
|
-
* pg_range
|
43
|
-
* pg_statement_cache
|
44
|
-
* server_block
|
45
|
-
|
46
|
-
Any user that was loading these extensions with Sequel.extension
|
47
|
-
and then manually extending objects with the extension's module
|
48
|
-
is encouraged to switch to Database#extension and/or
|
49
|
-
Dataset#extension.
|
50
|
-
|
51
|
-
* Dataset join methods now respect a :qualify=>:deep option
|
52
|
-
to do deep qualification of expressions, allowing qualification
|
53
|
-
of subexpressions in the expression tree. This can allow you
|
54
|
-
to do things like:
|
55
|
-
|
56
|
-
DB[:a].join(:b, {:c.cast(Integer)=>:d.cast(Integer)},
|
57
|
-
:qualify=>:deep)
|
58
|
-
# SELECT * FROM a INNER JOIN b
|
59
|
-
# ON (CAST(b.c AS INTEGER) = CAST(a.d AS INTEGER))
|
60
|
-
|
61
|
-
For backwards compatibility, by default Sequel will only do
|
62
|
-
automatic qualification if the arguments are simple symbols.
|
63
|
-
This may change in a future version, if automatic qualification
|
64
|
-
of only symbols is desired, switch to using :qualify=>:symbol.
|
65
|
-
|
66
|
-
You can also choose to do no automatic qualification using the
|
67
|
-
:qualify=>false option.
|
68
|
-
|
69
|
-
* All of Sequel's model associations now work with key expressions
|
70
|
-
that are not simple column references, without creating a fully
|
71
|
-
custom association. So you can create associations where the
|
72
|
-
primary/foreign key values are stored in PostgreSQL array or
|
73
|
-
hstore columns, for example.
|
74
|
-
|
75
|
-
* The pg_array extension has now been made more generic, so that it
|
76
|
-
is easy to support array types for any scalar type that is
|
77
|
-
currently supported. All scalar types that Sequel's postgres
|
78
|
-
adapter supports now have corresponding array types supported in
|
79
|
-
the pg_array extension. So if you load the pg_array extension and
|
80
|
-
return a date array column, the returned values will be arrays of
|
81
|
-
ruby Date objects.
|
82
|
-
|
83
|
-
Other pg_* extensions that add support for PostgreSQL-specific
|
84
|
-
scalar types now support array versions of those types if the
|
85
|
-
pg_array extension is loaded first.
|
86
|
-
|
87
|
-
* A pg_range extension has been added, making it easy to deal
|
88
|
-
with PostgreSQL 9.2+'s range types. As ruby's Range class does
|
89
|
-
not support all PostgreSQL range type values (such as empty ranges,
|
90
|
-
unbounded ranges, or ranges with an exlusive beginning), range
|
91
|
-
types are returned as instances of Sequel::Postgres::PGRange, which
|
92
|
-
has an API similar to Range. You can turn a PGRange into a Range
|
93
|
-
using PGRange#to_range, assuming that the range type value does not
|
94
|
-
use features that are incompatible with ruby's Range class.
|
95
|
-
|
96
|
-
The pg_range extension supports all range types supported by
|
97
|
-
default in PostgreSQL 9.2, and makes it easy to support custom
|
98
|
-
range types.
|
99
|
-
|
100
|
-
* A pg_range_ops extension has been added, which adds DSL support for
|
101
|
-
PostgreSQL range operators and functions, similar to the
|
102
|
-
pg_array_ops and pg_hstore_ops extensions.
|
103
|
-
|
104
|
-
* A pg_interval extension has been added, which makes Sequel return
|
105
|
-
PostgreSQL interval types as instances of ActiveSupport::Duration.
|
106
|
-
This is useful if you want to take the interval value and use it in
|
107
|
-
calculations in ruby (assuming you load the appropriate parts of
|
108
|
-
ActiveSupport).
|
109
|
-
|
110
|
-
* A split_array_nil extension has been added, which changes how Sequel
|
111
|
-
compiles IN/NOT IN expressions with arrays with nil values.
|
112
|
-
|
113
|
-
where(:col=>[1, nil])
|
114
|
-
# Default:
|
115
|
-
# WHERE (col IN (1, NULL))
|
116
|
-
# with split_array_nil extension:
|
117
|
-
# WHERE ((col IN (1)) OR (col IS NULL))
|
118
|
-
|
119
|
-
exclude(:col=>[1, nil])
|
120
|
-
# Default:
|
121
|
-
# WHERE (col NOT IN (1, NULL))
|
122
|
-
# with split_array_nil extension:
|
123
|
-
# WHERE ((col NOT IN (1)) AND (col IS NOT NULL))
|
124
|
-
|
125
|
-
* The nested_attributes plugin now allows the :fields option to
|
126
|
-
be a proc, which is called with the associated object and should
|
127
|
-
return an array of allowable fields.
|
128
|
-
|
129
|
-
* You can now specify the graph alias base when using eager_graph on
|
130
|
-
a per-call basis. Previously, it could only be set on a per
|
131
|
-
association basis. This is helpful if you have multiple
|
132
|
-
associations to the same class, and are cascading the eager graph to
|
133
|
-
dependent associations of that class for both of the associations.
|
134
|
-
Previously, there was no way to manually give descriptive names to
|
135
|
-
the tables in the cascaded associations, but you can now do so
|
136
|
-
by passing the association as an Sequel::SQL::AliasedExpression
|
137
|
-
instance instead of a plain Symbol. Here's a usage example:
|
138
|
-
|
139
|
-
ds = Game.eager_graph(:winner=>:players.as(:winning_players),
|
140
|
-
:loser=>:players.as(:losing_players)).
|
141
|
-
where(:winning_players__name=>'A',
|
142
|
-
:losing_players__name=>'B')
|
143
|
-
|
144
|
-
* many_through_many associations now differentiate between column
|
145
|
-
references and method references, by supporting the
|
146
|
-
:left_primary_key_column and :right_primary_key_method options that
|
147
|
-
many_to_many associations support.
|
148
|
-
|
149
|
-
* Custom :eager_loader procs that accept a single hash argument now
|
150
|
-
have an additional entry passed in the hash, :id_map, which is
|
151
|
-
easier to use than the :key_hash entry (which is still present for
|
152
|
-
backwards compatibility). Anyone with custom :eager_loader procs is
|
153
|
-
encouraged to switch from using :key_hash to :id_map.
|
154
|
-
|
155
|
-
* You can now override the create_table/alter_table schema generators
|
156
|
-
per database/adapter. This allows for database specific generator
|
157
|
-
subclasses, which have methods for unique features for that
|
158
|
-
database.
|
159
|
-
|
160
|
-
* You can now setup exclusion constraints on PostgreSQL using the
|
161
|
-
create_table and alter_table schema generators:
|
162
|
-
|
163
|
-
DB.create_table(:t) do
|
164
|
-
...
|
165
|
-
exclude([[:col1, '&&'], [:col2, '=']])
|
166
|
-
# EXCLUDE USING gist (col1 WITH &&, col2 WITH =)
|
167
|
-
end
|
168
|
-
|
169
|
-
One common use for exclusion constraints is to make sure that no two
|
170
|
-
rows have overlapping values/ranges/circles.
|
171
|
-
|
172
|
-
* When adding foreign key constraints to an existing table on
|
173
|
-
PostgreSQL, you can use the :not_valid option to mark the constraint
|
174
|
-
as not yet valid. This will make it so that future changes to the
|
175
|
-
table need to respect the foreign key constraint, but existing rows
|
176
|
-
do not. After cleaning up the existing data, you can then use the
|
177
|
-
alter_table validate_constraint method to mark the constraint as
|
178
|
-
valid.
|
179
|
-
|
180
|
-
* An eval_inspect extension has been added that attempts to do
|
181
|
-
do the following for Sequel::SQL::Expression instances:
|
182
|
-
|
183
|
-
eval(obj.inspect) == obj # => true
|
184
|
-
|
185
|
-
There are a lot of cases that this extension does not handle, but
|
186
|
-
it does a decent job in most cases. This is currently only used
|
187
|
-
internally in a specific case in the schema_dumper extension.
|
188
|
-
|
189
|
-
= Other Improvements
|
190
|
-
|
191
|
-
* The filter by associations support now respects the method
|
192
|
-
reference vs column reference distinction that other parts of the
|
193
|
-
association code have respected since 3.32.0.
|
194
|
-
|
195
|
-
* In the nested_attributes plugin, new one_to_one associated
|
196
|
-
values are saved once instead of twice. Previously it attempted to
|
197
|
-
save them before they were associated to the current model object,
|
198
|
-
which can violate some validations/constraints.
|
199
|
-
|
200
|
-
* When saving an associated object in the one_to_one association
|
201
|
-
setter method, Sequel no longer adds an unnecessary filter
|
202
|
-
condition when nullifying the foreign key for existing rows
|
203
|
-
in the associated table.
|
204
|
-
|
205
|
-
* The list plugin's before_create method now calls super, which
|
206
|
-
fixes usage when other plugins that define before_create are loaded
|
207
|
-
before it.
|
208
|
-
|
209
|
-
* In the pg_array extension, when typecasting an Array to PGArray,
|
210
|
-
a recursive map is done on the input array to convert each value
|
211
|
-
in the input array to the expected type, using the typecasting
|
212
|
-
method that would be used for the scalar value. For example, for
|
213
|
-
model objects, where ids is an integer array column:
|
214
|
-
|
215
|
-
model.set(:ids=>['1', '2']).ids.to_a # => [1, 2]
|
216
|
-
|
217
|
-
* The pg_array extension now correctly handles bytea arrays used
|
218
|
-
in bound variables.
|
219
|
-
|
220
|
-
* The pg_array extension no longer uses the JSON-based parser for
|
221
|
-
floating point types, since it doesn't handle NaN and Infinity
|
222
|
-
values correctly.
|
223
|
-
|
224
|
-
* When typecasting in the pg_array extension, PGArray values are
|
225
|
-
only returned verbatim if they have a matching database type.
|
226
|
-
Otherwise, the underlying array is rewrapped in a new PGArray
|
227
|
-
value with the correct database type.
|
228
|
-
|
229
|
-
* H2 clob types are now recognized as strings instead of blobs.
|
230
|
-
Previously the code attempted to do this, but it didn't do so
|
231
|
-
correctly.
|
232
|
-
|
233
|
-
* The jdbc/postgres adapter now converts scalar values of
|
234
|
-
the array to the appropriate type. Previously, if you retrieved
|
235
|
-
a date array, you got back a ruby array of JavaSQL::SQL::Date
|
236
|
-
instances. Now, you get back a ruby array of ruby Date instances.
|
237
|
-
|
238
|
-
* The schema_dumper extension now dumps migrations as change
|
239
|
-
migrations, instead of separate up/down migrations, resulting in
|
240
|
-
simpler code.
|
241
|
-
|
242
|
-
* When dumping non-integer foreign keys in the schema dumper, an
|
243
|
-
explicit type is now used. Previously, the column would have been
|
244
|
-
dumped as an integer column.
|
245
|
-
|
246
|
-
* When dumping unsigned integer columns in the schema dumper, add a
|
247
|
-
column > 0 constraint in the dumped migration.
|
248
|
-
|
249
|
-
* On Microsoft SQL Server, when updating a dataset with a limit,
|
250
|
-
the limit is now respected.
|
251
|
-
|
252
|
-
* When emulating offset using the ROW_NUMBER window function,
|
253
|
-
do not require that the dataset be ordered. If an order is
|
254
|
-
not provided, default to ordering on all of the columns in
|
255
|
-
the dataset. If you want to override the default order used
|
256
|
-
in such a case, you need to override the default_offset_order
|
257
|
-
method for the dataset.
|
258
|
-
|
259
|
-
* On SQLite, casting to Date/Time/DateTime now calls an SQLite
|
260
|
-
date/datetime function instead of using a cast, as SQLite treats
|
261
|
-
such a cast as a cast to integer.
|
262
|
-
|
263
|
-
* When using JRuby 1.6 in ruby 1.9 mode and typecasting a time
|
264
|
-
column, workaround a bug where Time#nsec is 0 even though
|
265
|
-
Time#usec is not.
|
266
|
-
|
267
|
-
* The odbc/mssql adapter now correctly handles the case where
|
268
|
-
SCOPE_IDENTITY returns NULL after an insert.
|
269
|
-
|
270
|
-
* bin/sequel now accepts multiple -l options for logging to multiple
|
271
|
-
output files.
|
272
|
-
|
273
|
-
* In addition to Sequel's rigorous pre-push testing, Sequel now
|
274
|
-
also uses TravisCI for continuous integration testing across
|
275
|
-
a wider range of ruby implementations.
|
276
|
-
|
277
|
-
= Backwards Compatibility
|
278
|
-
|
279
|
-
* The keys in the :key_hash entry passed to the :eager_loader proc
|
280
|
-
are now method references instead of column references. For most
|
281
|
-
associations, they are the same thing, but for associations using
|
282
|
-
the :key_column/:primary_key_column/:left_primary_key_column
|
283
|
-
options, the values could be different. If you were using one
|
284
|
-
of those options and had a custom eager_loader, you should switch
|
285
|
-
from indexing into the :key_hash option to just using the :id_map
|
286
|
-
option.
|
287
|
-
|
288
|
-
* The :key_hash entry passed to the :eager_loader proc is now no
|
289
|
-
longer guaranteed to contain key maps for associations other than
|
290
|
-
the one currently being eagerly loaded. Previously, it contained
|
291
|
-
key maps for all associations that were being eagerly loaded. If
|
292
|
-
you have a custom :eager_loader proc that accessed a key map for
|
293
|
-
a separate association that was being loaded concurrently, you'll
|
294
|
-
now have to build the key map manually if it doesn't exist.
|
295
|
-
|
296
|
-
* If you previously explicitly specified an :eager_loader_key option
|
297
|
-
when defining an association, you may need to change it so that it
|
298
|
-
is a method reference instead of a column reference, or possibly
|
299
|
-
just omit the option.
|
300
|
-
|
301
|
-
* If you have a custom :eager_loader proc for an association where
|
302
|
-
the default :eager_loader_key option references a method that
|
303
|
-
the model does not respond to (or raises an exception), you may
|
304
|
-
need to specify the :eager_loader_key=>nil option.
|
305
|
-
|
306
|
-
* In the pg_auto_parameterize extension, String values are no longer
|
307
|
-
automatically casted to text. This is because the default type of
|
308
|
-
a string literal in PostgreSQL is unknown, not text. This makes it
|
309
|
-
much less likely to require manual casts, but has the potential to
|
310
|
-
break existing code relying on the automatic cast to text. As a
|
311
|
-
work around, any query that can no longer be automatically
|
312
|
-
parameterized after this query just needs to add manual casting
|
313
|
-
to text.
|
314
|
-
|
315
|
-
* Sequel now raises an exception if you attempt to clone associations
|
316
|
-
with different types, except if one type is one_to_many and the
|
317
|
-
other is one_to_one. Cloning from other types was usually a bug,
|
318
|
-
and raising an exception early will make it much easier to track
|
319
|
-
such bugs down.
|
320
|
-
|
321
|
-
* When running the plugin/extension and PostgreSQL adapter specs,
|
322
|
-
a json library is now required.
|
323
|
-
|
324
|
-
* The json/postgres adapter array typecasting internals have been
|
325
|
-
modified, if you were relying on the internals, you may need to
|
326
|
-
update your code.
|
327
|
-
|
328
|
-
* The pg_array extension internals changed significantly. PGArray
|
329
|
-
no longer has any subclasses by default, as parsing is now done
|
330
|
-
in separate objects. Anyone relying on the pg_array internals
|
331
|
-
will need to update their code.
|
332
|
-
|
333
|
-
* The postgres adapter no longer sets up type conversion of int2vector
|
334
|
-
and money types, since in both cases the conversion was incorrect in
|
335
|
-
most cases. These types will now be returned as strings. If you are
|
336
|
-
relying on the conversion, you'll need to add your own custom type
|
337
|
-
procs.
|
338
|
-
|
@@ -1,234 +0,0 @@
|
|
1
|
-
= New Features
|
2
|
-
|
3
|
-
* A pg_row extension has been added that supports PostgreSQL's
|
4
|
-
row-valued/composite types. You can register support for
|
5
|
-
specific row types:
|
6
|
-
|
7
|
-
DB.register_row_type(:address)
|
8
|
-
|
9
|
-
Then you can create values of that row type:
|
10
|
-
|
11
|
-
ad = DB.row_type(:address, ['555 Foo St.', 'Bar City', '98765'])
|
12
|
-
# or
|
13
|
-
ad = DB.row_type(:address, :street=>'555 Foo St.',
|
14
|
-
:city=>'Bar City', :zip=>'98765')
|
15
|
-
|
16
|
-
Which you can use in your datasets:
|
17
|
-
|
18
|
-
DB[:people].insert(:name=>'Me', :address=>ad)
|
19
|
-
|
20
|
-
If you are using the native postgres adapter, when retreiving
|
21
|
-
row type values, they will be returned as instances of the row
|
22
|
-
type, which are hash-like objects:
|
23
|
-
|
24
|
-
ad = DB[:people].get(:address)
|
25
|
-
ad[:street] # => '555 Foo St.'
|
26
|
-
ad[:city] # => 'Bar City'
|
27
|
-
ad[:zip] # => '98765'
|
28
|
-
|
29
|
-
If you are also using the pg_array extension, then arrays of
|
30
|
-
composite types are supported automatically. Composite
|
31
|
-
types can also include arrays of other types as well as other
|
32
|
-
composite types, though recursive composite types are not
|
33
|
-
allowed by PostgreSQL.
|
34
|
-
|
35
|
-
Using arrays and composite types brings one of the benefits
|
36
|
-
of document databases to PostgreSQL, allowing you to store
|
37
|
-
nested structures inside a single row.
|
38
|
-
|
39
|
-
* A pg_row_ops extension has been added that adds DSL support
|
40
|
-
for accessing members of row-valued/composite types. You
|
41
|
-
first create a row op:
|
42
|
-
|
43
|
-
r = Sequel.pg_row_op(:row_column)
|
44
|
-
|
45
|
-
Then you can get DSL support for accessing members of that
|
46
|
-
row_column via the #[] method:
|
47
|
-
|
48
|
-
r[:a] # (row_column).a
|
49
|
-
|
50
|
-
This works with composite types containing composite types:
|
51
|
-
|
52
|
-
r[:a][:b] # ((row_column).a).b
|
53
|
-
|
54
|
-
When used in conjunction with the pg_array_ops extension,
|
55
|
-
there is support for composite types that include arrays,
|
56
|
-
as well as arrays of composite types:
|
57
|
-
|
58
|
-
r[1][:a] # (row_column[1]).a
|
59
|
-
r[:a][1] # (row_column).a[1]
|
60
|
-
|
61
|
-
The extension offers additional support for referencing
|
62
|
-
a table's type when it contains a column with the same
|
63
|
-
name, see the RDoc for details.
|
64
|
-
|
65
|
-
* A pg_row plugin has been added, that works with the pg_row
|
66
|
-
extension, and allows you to represent row-valued types as
|
67
|
-
Sequel::Model objects (instead of the hash-like objects
|
68
|
-
they use by default). In your model class, you load the
|
69
|
-
plugin:
|
70
|
-
|
71
|
-
class Address < Sequel::Model(:address)
|
72
|
-
plugin :pg_row
|
73
|
-
end
|
74
|
-
|
75
|
-
Then you can use Address instances in your datasets:
|
76
|
-
|
77
|
-
ad = Address.new(:street=>'555 Foo St.',
|
78
|
-
:city=>'Bar City', :zip=>'98765')
|
79
|
-
DB[:people].insert(:name=>'Me', :address=>ad)
|
80
|
-
|
81
|
-
And if you are using the native postgres adapter, the dataset
|
82
|
-
will return the type as a model instance:
|
83
|
-
|
84
|
-
ad = DB[:people].get(:address)
|
85
|
-
ad.street # => '555 Foo St.'
|
86
|
-
ad.city # => 'Bar City'
|
87
|
-
ad.zip # => '98765'
|
88
|
-
|
89
|
-
* A pg_typecast_on_load plugin has been added. This plugin is
|
90
|
-
designed for use with the jdbc/postgres, do/postgres, and
|
91
|
-
swift/postgres adapters, and it is similar to the
|
92
|
-
typecast_on_load plugin. However, while the typecast_on_load
|
93
|
-
plugin uses setter methods, the pg_typecast_on_load plugin
|
94
|
-
uses the same code that the native postgres adapter uses for
|
95
|
-
typecasting.
|
96
|
-
|
97
|
-
* The tinytds adapter now supports a :textsize option to override
|
98
|
-
the default TEXTSIZE setting. The FreeTDS default is fairly
|
99
|
-
small (~64k), so if you want to use large blob or text columns,
|
100
|
-
you should probably set this to a value larger than the
|
101
|
-
largest text/blob you want to use.
|
102
|
-
|
103
|
-
* Sequel.expr when called with a symbol now splits the symbol and
|
104
|
-
returns an Identifier, QualifiedIdentifier, or AliasedExpression,
|
105
|
-
depending on the content of the symbol. Previously, it only
|
106
|
-
wrapped the symbol using a Wrapper.
|
107
|
-
|
108
|
-
* Identifier#* and QualifiedIdentifier#* when called without any
|
109
|
-
argument now represent a selection of all columns from the
|
110
|
-
represented table:
|
111
|
-
|
112
|
-
Sequel.expr(:table).* # table.*
|
113
|
-
Sequel.expr(:schema__table).* # schema.table.*
|
114
|
-
|
115
|
-
This makes it easier to represent the selection of all columns
|
116
|
-
in a table without using the core extensions.
|
117
|
-
|
118
|
-
* Model#values now has a Model#to_hash alias.
|
119
|
-
|
120
|
-
* SQL::Blob values now have as, cast, and lit methods even if the
|
121
|
-
core extensions are not loaded.
|
122
|
-
|
123
|
-
= Other Improvements
|
124
|
-
|
125
|
-
* When loading multiple pg_* extensions into a Database instance,
|
126
|
-
the conversion procs are only reset once instead of once per
|
127
|
-
extension.
|
128
|
-
|
129
|
-
* All adapters that access PostgreSQL now store type conversion
|
130
|
-
procs, similar to the native postgres adapter. This has been
|
131
|
-
added to make it easier to write extensions that support
|
132
|
-
advanced PostgreSQL types.
|
133
|
-
|
134
|
-
* Database#schema output on PostgreSQL now includes the type oid
|
135
|
-
for each column.
|
136
|
-
|
137
|
-
* You can now register custom array types to specific Database
|
138
|
-
instances, using the :type_procs and :typecast_methods_module
|
139
|
-
options, so it is now possible to have custom array types
|
140
|
-
without affecting global state.
|
141
|
-
|
142
|
-
* Dropping of columns with defaults now works correctly on
|
143
|
-
Microsoft SQL Server. Before, it would fail as the related
|
144
|
-
constraint was not dropped first.
|
145
|
-
|
146
|
-
* The MySQL type "double(x,y)" is now recognized as a float type.
|
147
|
-
|
148
|
-
* The jdbc/jtds and jdbc/derby adapters now handle nil prepared
|
149
|
-
statement values in more cases.
|
150
|
-
|
151
|
-
* Blob prepared statement arguments are now handled correctly on
|
152
|
-
jdbc/db2 and jdbc/oracle.
|
153
|
-
|
154
|
-
* Sequel now works around a Time#nsec bug in JRuby 1.6 ruby 1.9 mode
|
155
|
-
when using Time values in prepared statements in the jdbc adapter.
|
156
|
-
|
157
|
-
* Java::JavaUtil::UUID types are now returned as ruby strings
|
158
|
-
when converting types in the jdbc adapter.
|
159
|
-
|
160
|
-
* Real boolean literals are now used on derby 10.7+. On derby <10.7
|
161
|
-
Sequel still uses (1 = 1) and (1 != 1) for true and false. This
|
162
|
-
allows you to use boolean columns with a true/false default on
|
163
|
-
derby 10.7+.
|
164
|
-
|
165
|
-
* Clobs are now treated as string types instead of blobs on derby,
|
166
|
-
since treating clob as blob doesn't work there.
|
167
|
-
|
168
|
-
* The swift adapter now supports an output identifier method.
|
169
|
-
|
170
|
-
* The swift adapter now returns blobs as SQL::Blob instances.
|
171
|
-
|
172
|
-
* The schema_dumper extension no longer produces code that requires
|
173
|
-
the core extensions.
|
174
|
-
|
175
|
-
* All of Sequel's specs now run without the core extensions loaded,
|
176
|
-
ensuring that none of the internals depend on the core extensions.
|
177
|
-
The only exception is the specs for the core extensions themselves.
|
178
|
-
|
179
|
-
= Backwards Compatibility
|
180
|
-
|
181
|
-
* The pg_* extensions no longer modify core classes if the
|
182
|
-
core_extensions extension is not loaded. All methods they added now
|
183
|
-
have equivalent methods on the main Sequel module:
|
184
|
-
|
185
|
-
Sequel.pg_array
|
186
|
-
Sequel.pg_array_op
|
187
|
-
Sequel.hstore
|
188
|
-
Sequel.hstore_op
|
189
|
-
Sequel.pg_json
|
190
|
-
Sequel.pg_range
|
191
|
-
Sequel.pg_range_op
|
192
|
-
|
193
|
-
* The Sequel::SQL::IdentifierMethods module has been removed. This
|
194
|
-
module was only included in Symbol if the core_extensions were
|
195
|
-
enabled. Since it only defined a single method, now the core
|
196
|
-
extensions just define that method directly on Symbol.
|
197
|
-
|
198
|
-
* The swift adapter now requires swift-db-{postgres,mysql,sqlite3}
|
199
|
-
gems instead of the swift gem. swift/postgres requires
|
200
|
-
swift-db-postgres 0.2.0+, swift/sqlite requires swift-db-sqlite
|
201
|
-
0.1.2+, and swift/mysql requires swift-db-mysql.
|
202
|
-
|
203
|
-
* Sequel will no longer typecast a string to a PostgreSQL array
|
204
|
-
or hstore column in a model column setter. This is because the
|
205
|
-
parsers that Sequel uses were designed to support only
|
206
|
-
PostgreSQL's output format. It's unlikely that a user would
|
207
|
-
provide that format for typecasting, and while there aren't known
|
208
|
-
security issues with the parsers, they were not designed to handle
|
209
|
-
arbtirary user input, so typecasting from string is no longer
|
210
|
-
allowed and will now raise an error.
|
211
|
-
|
212
|
-
The only reason such typecasting was allowed in the first place
|
213
|
-
was to work around issues in the jdbc/postgres, do/postgres, and
|
214
|
-
swift/postgres adapters, using the the typecast_on_load plugin.
|
215
|
-
If you were previously using the typecast_on_load plugin for
|
216
|
-
hstore or array columns, you need to switch to using the new
|
217
|
-
pg_typecast_on_load plugin.
|
218
|
-
|
219
|
-
* The private get_conversion_procs method in the postgres adapter
|
220
|
-
no longer accepts an argument.
|
221
|
-
|
222
|
-
* The Sequel::Postgres::PGArray::DatabaseMethods singleton
|
223
|
-
define_array_typecast_method method has been removed. This
|
224
|
-
method was designed for internal use.
|
225
|
-
|
226
|
-
* The change to make Sequel.expr split symbols can cause the
|
227
|
-
following type of code to break:
|
228
|
-
|
229
|
-
Sequel.expr(:column___alias).desc
|
230
|
-
|
231
|
-
This is because expr now returns an AliasedExpression, which
|
232
|
-
doesn't support the desc method. However, as you can't
|
233
|
-
apply an order to an aliased expression, nobody should be
|
234
|
-
relying on this.
|