sequel 4.36.0 → 5.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG +548 -5749
- data/MIT-LICENSE +1 -1
- data/README.rdoc +265 -159
- data/bin/sequel +34 -12
- data/doc/advanced_associations.rdoc +228 -187
- data/doc/association_basics.rdoc +281 -291
- data/doc/bin_sequel.rdoc +5 -3
- data/doc/cheat_sheet.rdoc +86 -51
- data/doc/code_order.rdoc +25 -19
- data/doc/core_extensions.rdoc +104 -63
- data/doc/dataset_basics.rdoc +12 -21
- data/doc/dataset_filtering.rdoc +99 -86
- data/doc/extensions.rdoc +3 -10
- data/doc/fork_safety.rdoc +84 -0
- data/doc/mass_assignment.rdoc +74 -31
- data/doc/migration.rdoc +59 -51
- data/doc/model_dataset_method_design.rdoc +129 -0
- data/doc/model_hooks.rdoc +15 -25
- data/doc/model_plugins.rdoc +12 -12
- data/doc/mssql_stored_procedures.rdoc +3 -3
- data/doc/object_model.rdoc +58 -68
- data/doc/opening_databases.rdoc +85 -95
- data/doc/postgresql.rdoc +263 -38
- data/doc/prepared_statements.rdoc +29 -24
- data/doc/querying.rdoc +189 -167
- data/doc/reflection.rdoc +5 -6
- data/doc/release_notes/5.0.0.txt +159 -0
- data/doc/release_notes/5.1.0.txt +31 -0
- data/doc/release_notes/5.10.0.txt +84 -0
- data/doc/release_notes/5.11.0.txt +83 -0
- data/doc/release_notes/5.12.0.txt +141 -0
- data/doc/release_notes/5.13.0.txt +27 -0
- data/doc/release_notes/5.14.0.txt +63 -0
- data/doc/release_notes/5.15.0.txt +39 -0
- data/doc/release_notes/5.16.0.txt +110 -0
- data/doc/release_notes/5.17.0.txt +31 -0
- data/doc/release_notes/5.18.0.txt +69 -0
- data/doc/release_notes/5.19.0.txt +28 -0
- data/doc/release_notes/5.2.0.txt +33 -0
- data/doc/release_notes/5.20.0.txt +89 -0
- data/doc/release_notes/5.21.0.txt +87 -0
- data/doc/release_notes/5.22.0.txt +48 -0
- data/doc/release_notes/5.23.0.txt +56 -0
- data/doc/release_notes/5.24.0.txt +56 -0
- data/doc/release_notes/5.25.0.txt +32 -0
- data/doc/release_notes/5.26.0.txt +35 -0
- data/doc/release_notes/5.27.0.txt +21 -0
- data/doc/release_notes/5.28.0.txt +16 -0
- data/doc/release_notes/5.29.0.txt +22 -0
- data/doc/release_notes/5.3.0.txt +121 -0
- data/doc/release_notes/5.30.0.txt +20 -0
- data/doc/release_notes/5.31.0.txt +148 -0
- data/doc/release_notes/5.32.0.txt +46 -0
- data/doc/release_notes/5.33.0.txt +24 -0
- data/doc/release_notes/5.34.0.txt +40 -0
- data/doc/release_notes/5.35.0.txt +56 -0
- data/doc/release_notes/5.36.0.txt +60 -0
- data/doc/release_notes/5.37.0.txt +30 -0
- data/doc/release_notes/5.38.0.txt +28 -0
- data/doc/release_notes/5.39.0.txt +19 -0
- data/doc/release_notes/5.4.0.txt +80 -0
- data/doc/release_notes/5.40.0.txt +40 -0
- data/doc/release_notes/5.41.0.txt +25 -0
- data/doc/release_notes/5.42.0.txt +136 -0
- data/doc/release_notes/5.43.0.txt +98 -0
- data/doc/release_notes/5.44.0.txt +32 -0
- data/doc/release_notes/5.45.0.txt +34 -0
- data/doc/release_notes/5.46.0.txt +87 -0
- data/doc/release_notes/5.47.0.txt +59 -0
- data/doc/release_notes/5.48.0.txt +14 -0
- data/doc/release_notes/5.49.0.txt +59 -0
- data/doc/release_notes/5.5.0.txt +61 -0
- data/doc/release_notes/5.50.0.txt +78 -0
- data/doc/release_notes/5.51.0.txt +47 -0
- data/doc/release_notes/5.52.0.txt +87 -0
- data/doc/release_notes/5.53.0.txt +23 -0
- data/doc/release_notes/5.54.0.txt +27 -0
- data/doc/release_notes/5.55.0.txt +21 -0
- data/doc/release_notes/5.56.0.txt +51 -0
- data/doc/release_notes/5.57.0.txt +23 -0
- data/doc/release_notes/5.58.0.txt +31 -0
- data/doc/release_notes/5.59.0.txt +73 -0
- data/doc/release_notes/5.6.0.txt +31 -0
- data/doc/release_notes/5.60.0.txt +22 -0
- data/doc/release_notes/5.61.0.txt +43 -0
- data/doc/release_notes/5.7.0.txt +108 -0
- data/doc/release_notes/5.8.0.txt +170 -0
- data/doc/release_notes/5.9.0.txt +99 -0
- data/doc/schema_modification.rdoc +95 -75
- data/doc/security.rdoc +109 -80
- data/doc/sharding.rdoc +74 -47
- data/doc/sql.rdoc +147 -122
- data/doc/testing.rdoc +43 -20
- data/doc/thread_safety.rdoc +2 -4
- data/doc/transactions.rdoc +97 -18
- data/doc/validations.rdoc +52 -50
- data/doc/virtual_rows.rdoc +90 -109
- data/lib/sequel/adapters/ado/access.rb +15 -17
- data/lib/sequel/adapters/ado/mssql.rb +6 -15
- data/lib/sequel/adapters/ado.rb +150 -20
- data/lib/sequel/adapters/amalgalite.rb +11 -23
- data/lib/sequel/adapters/ibmdb.rb +47 -55
- data/lib/sequel/adapters/jdbc/db2.rb +29 -39
- data/lib/sequel/adapters/jdbc/derby.rb +58 -54
- data/lib/sequel/adapters/jdbc/h2.rb +93 -35
- data/lib/sequel/adapters/jdbc/hsqldb.rb +24 -31
- data/lib/sequel/adapters/jdbc/jtds.rb +2 -10
- data/lib/sequel/adapters/jdbc/mssql.rb +3 -11
- data/lib/sequel/adapters/jdbc/mysql.rb +17 -20
- data/lib/sequel/adapters/jdbc/oracle.rb +22 -18
- data/lib/sequel/adapters/jdbc/postgresql.rb +69 -71
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +11 -23
- data/lib/sequel/adapters/jdbc/sqlite.rb +47 -11
- data/lib/sequel/adapters/jdbc/sqlserver.rb +34 -9
- data/lib/sequel/adapters/jdbc/transactions.rb +22 -38
- data/lib/sequel/adapters/jdbc.rb +145 -130
- data/lib/sequel/adapters/mock.rb +100 -111
- data/lib/sequel/adapters/mysql.rb +114 -122
- data/lib/sequel/adapters/mysql2.rb +147 -63
- data/lib/sequel/adapters/odbc/db2.rb +1 -1
- data/lib/sequel/adapters/odbc/mssql.rb +8 -14
- data/lib/sequel/adapters/odbc/oracle.rb +11 -0
- data/lib/sequel/adapters/odbc.rb +20 -25
- data/lib/sequel/adapters/oracle.rb +50 -56
- data/lib/sequel/adapters/postgres.rb +305 -327
- data/lib/sequel/adapters/postgresql.rb +1 -1
- data/lib/sequel/adapters/shared/access.rb +74 -78
- data/lib/sequel/adapters/shared/db2.rb +118 -71
- data/lib/sequel/adapters/shared/mssql.rb +301 -220
- data/lib/sequel/adapters/shared/mysql.rb +299 -217
- data/lib/sequel/adapters/shared/oracle.rb +226 -65
- data/lib/sequel/adapters/shared/postgres.rb +935 -395
- data/lib/sequel/adapters/shared/sqlanywhere.rb +105 -126
- data/lib/sequel/adapters/shared/sqlite.rb +447 -173
- data/lib/sequel/adapters/sqlanywhere.rb +48 -35
- data/lib/sequel/adapters/sqlite.rb +156 -111
- data/lib/sequel/adapters/tinytds.rb +30 -38
- data/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
- data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +3 -6
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +2 -2
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +87 -0
- data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +56 -0
- data/lib/sequel/adapters/utils/replace.rb +1 -4
- data/lib/sequel/adapters/utils/stored_procedures.rb +7 -22
- data/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
- data/lib/sequel/ast_transformer.rb +17 -89
- data/lib/sequel/connection_pool/sharded_single.rb +18 -15
- data/lib/sequel/connection_pool/sharded_threaded.rb +130 -111
- data/lib/sequel/connection_pool/single.rb +18 -13
- data/lib/sequel/connection_pool/threaded.rb +121 -120
- data/lib/sequel/connection_pool.rb +48 -29
- data/lib/sequel/core.rb +351 -301
- data/lib/sequel/database/connecting.rb +69 -57
- data/lib/sequel/database/dataset.rb +13 -5
- data/lib/sequel/database/dataset_defaults.rb +18 -102
- data/lib/sequel/database/features.rb +18 -4
- data/lib/sequel/database/logging.rb +12 -11
- data/lib/sequel/database/misc.rb +180 -122
- data/lib/sequel/database/query.rb +47 -27
- data/lib/sequel/database/schema_generator.rb +178 -84
- data/lib/sequel/database/schema_methods.rb +172 -97
- data/lib/sequel/database/transactions.rb +205 -44
- data/lib/sequel/database.rb +17 -2
- data/lib/sequel/dataset/actions.rb +339 -155
- data/lib/sequel/dataset/dataset_module.rb +46 -0
- data/lib/sequel/dataset/features.rb +90 -35
- data/lib/sequel/dataset/graph.rb +80 -58
- data/lib/sequel/dataset/misc.rb +137 -47
- data/lib/sequel/dataset/placeholder_literalizer.rb +63 -25
- data/lib/sequel/dataset/prepared_statements.rb +188 -85
- data/lib/sequel/dataset/query.rb +530 -222
- data/lib/sequel/dataset/sql.rb +590 -368
- data/lib/sequel/dataset.rb +26 -16
- data/lib/sequel/deprecated.rb +12 -2
- data/lib/sequel/exceptions.rb +46 -16
- data/lib/sequel/extensions/_model_constraint_validations.rb +16 -0
- data/lib/sequel/extensions/_model_pg_row.rb +43 -0
- data/lib/sequel/extensions/_pretty_table.rb +2 -5
- data/lib/sequel/extensions/any_not_empty.rb +45 -0
- data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
- data/lib/sequel/extensions/async_thread_pool.rb +438 -0
- data/lib/sequel/extensions/auto_literal_strings.rb +74 -0
- data/lib/sequel/extensions/blank.rb +8 -0
- data/lib/sequel/extensions/caller_logging.rb +79 -0
- data/lib/sequel/extensions/columns_introspection.rb +4 -3
- data/lib/sequel/extensions/connection_expiration.rb +20 -10
- data/lib/sequel/extensions/connection_validator.rb +11 -10
- data/lib/sequel/extensions/constant_sql_override.rb +65 -0
- data/lib/sequel/extensions/constraint_validations.rb +62 -39
- data/lib/sequel/extensions/core_extensions.rb +42 -48
- data/lib/sequel/extensions/core_refinements.rb +80 -59
- data/lib/sequel/extensions/current_datetime_timestamp.rb +1 -4
- data/lib/sequel/extensions/date_arithmetic.rb +98 -39
- data/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
- data/lib/sequel/extensions/datetime_parse_to_time.rb +41 -0
- data/lib/sequel/extensions/duplicate_columns_handler.rb +21 -14
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
- data/lib/sequel/extensions/escaped_like.rb +100 -0
- data/lib/sequel/extensions/eval_inspect.rb +12 -15
- data/lib/sequel/extensions/exclude_or_null.rb +68 -0
- data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
- data/lib/sequel/extensions/freeze_datasets.rb +3 -0
- data/lib/sequel/extensions/from_block.rb +1 -34
- data/lib/sequel/extensions/graph_each.rb +4 -4
- data/lib/sequel/extensions/identifier_mangling.rb +180 -0
- data/lib/sequel/extensions/implicit_subquery.rb +48 -0
- data/lib/sequel/extensions/index_caching.rb +109 -0
- data/lib/sequel/extensions/inflector.rb +13 -5
- data/lib/sequel/extensions/integer64.rb +32 -0
- data/lib/sequel/extensions/is_distinct_from.rb +141 -0
- data/lib/sequel/extensions/looser_typecasting.rb +17 -8
- data/lib/sequel/extensions/migration.rb +119 -78
- data/lib/sequel/extensions/named_timezones.rb +88 -23
- data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -82
- data/lib/sequel/extensions/null_dataset.rb +8 -8
- data/lib/sequel/extensions/pagination.rb +32 -29
- data/lib/sequel/extensions/pg_array.rb +221 -287
- data/lib/sequel/extensions/pg_array_ops.rb +17 -9
- data/lib/sequel/extensions/pg_enum.rb +63 -23
- data/lib/sequel/extensions/pg_extended_date_support.rb +241 -0
- data/lib/sequel/extensions/pg_hstore.rb +45 -54
- data/lib/sequel/extensions/pg_hstore_ops.rb +58 -6
- data/lib/sequel/extensions/pg_inet.rb +31 -12
- data/lib/sequel/extensions/pg_inet_ops.rb +2 -2
- data/lib/sequel/extensions/pg_interval.rb +56 -29
- data/lib/sequel/extensions/pg_json.rb +417 -140
- data/lib/sequel/extensions/pg_json_ops.rb +270 -18
- data/lib/sequel/extensions/pg_loose_count.rb +4 -2
- data/lib/sequel/extensions/pg_multirange.rb +372 -0
- data/lib/sequel/extensions/pg_range.rb +131 -191
- data/lib/sequel/extensions/pg_range_ops.rb +42 -13
- data/lib/sequel/extensions/pg_row.rb +48 -81
- data/lib/sequel/extensions/pg_row_ops.rb +33 -14
- data/lib/sequel/extensions/pg_static_cache_updater.rb +2 -2
- data/lib/sequel/extensions/pg_timestamptz.rb +28 -0
- data/lib/sequel/extensions/query.rb +9 -7
- data/lib/sequel/extensions/round_timestamps.rb +0 -6
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/s.rb +60 -0
- data/lib/sequel/extensions/schema_caching.rb +10 -1
- data/lib/sequel/extensions/schema_dumper.rb +71 -48
- data/lib/sequel/extensions/select_remove.rb +4 -4
- data/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
- data/lib/sequel/extensions/server_block.rb +51 -27
- data/lib/sequel/extensions/split_array_nil.rb +4 -4
- data/lib/sequel/extensions/sql_comments.rb +119 -7
- data/lib/sequel/extensions/sql_expr.rb +2 -1
- data/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
- data/lib/sequel/extensions/sqlite_json_ops.rb +255 -0
- data/lib/sequel/extensions/string_agg.rb +11 -8
- data/lib/sequel/extensions/string_date_time.rb +19 -23
- data/lib/sequel/extensions/symbol_aref.rb +55 -0
- data/lib/sequel/extensions/symbol_aref_refinement.rb +43 -0
- data/lib/sequel/extensions/symbol_as.rb +23 -0
- data/lib/sequel/extensions/symbol_as_refinement.rb +37 -0
- data/lib/sequel/extensions/synchronize_sql.rb +45 -0
- data/lib/sequel/extensions/to_dot.rb +10 -4
- data/lib/sequel/extensions/virtual_row_method_block.rb +44 -0
- data/lib/sequel/model/associations.rb +1006 -284
- data/lib/sequel/model/base.rb +560 -805
- data/lib/sequel/model/dataset_module.rb +11 -10
- data/lib/sequel/model/default_inflections.rb +1 -1
- data/lib/sequel/model/errors.rb +10 -3
- data/lib/sequel/model/exceptions.rb +8 -10
- data/lib/sequel/model/inflections.rb +7 -20
- data/lib/sequel/model/plugins.rb +114 -0
- data/lib/sequel/model.rb +32 -82
- data/lib/sequel/plugins/active_model.rb +30 -14
- data/lib/sequel/plugins/after_initialize.rb +1 -1
- data/lib/sequel/plugins/association_dependencies.rb +25 -18
- data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
- data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
- data/lib/sequel/plugins/association_pks.rb +147 -70
- data/lib/sequel/plugins/association_proxies.rb +33 -9
- data/lib/sequel/plugins/async_thread_pool.rb +39 -0
- data/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
- data/lib/sequel/plugins/auto_validations.rb +95 -28
- data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
- data/lib/sequel/plugins/before_after_save.rb +0 -42
- data/lib/sequel/plugins/blacklist_security.rb +21 -12
- data/lib/sequel/plugins/boolean_readers.rb +5 -5
- data/lib/sequel/plugins/boolean_subsets.rb +13 -8
- data/lib/sequel/plugins/caching.rb +25 -16
- data/lib/sequel/plugins/class_table_inheritance.rb +179 -100
- data/lib/sequel/plugins/column_conflicts.rb +16 -3
- data/lib/sequel/plugins/column_encryption.rb +728 -0
- data/lib/sequel/plugins/column_select.rb +7 -5
- data/lib/sequel/plugins/columns_updated.rb +42 -0
- data/lib/sequel/plugins/composition.rb +42 -26
- data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
- data/lib/sequel/plugins/constraint_validations.rb +20 -14
- data/lib/sequel/plugins/csv_serializer.rb +56 -35
- data/lib/sequel/plugins/dataset_associations.rb +40 -17
- data/lib/sequel/plugins/def_dataset_method.rb +90 -0
- data/lib/sequel/plugins/defaults_setter.rb +65 -10
- data/lib/sequel/plugins/delay_add_association.rb +1 -1
- data/lib/sequel/plugins/dirty.rb +62 -24
- data/lib/sequel/plugins/eager_each.rb +3 -3
- data/lib/sequel/plugins/eager_graph_eager.rb +139 -0
- data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
- data/lib/sequel/plugins/enum.rb +124 -0
- data/lib/sequel/plugins/error_splitter.rb +17 -12
- data/lib/sequel/plugins/finder.rb +246 -0
- data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
- data/lib/sequel/plugins/force_encoding.rb +7 -12
- data/lib/sequel/plugins/hook_class_methods.rb +37 -54
- data/lib/sequel/plugins/input_transformer.rb +18 -10
- data/lib/sequel/plugins/insert_conflict.rb +76 -0
- data/lib/sequel/plugins/insert_returning_select.rb +2 -2
- data/lib/sequel/plugins/instance_filters.rb +10 -8
- data/lib/sequel/plugins/instance_hooks.rb +34 -17
- data/lib/sequel/plugins/instance_specific_default.rb +113 -0
- data/lib/sequel/plugins/inverted_subsets.rb +22 -13
- data/lib/sequel/plugins/json_serializer.rb +124 -64
- data/lib/sequel/plugins/lazy_attributes.rb +21 -14
- data/lib/sequel/plugins/list.rb +35 -21
- data/lib/sequel/plugins/many_through_many.rb +134 -21
- data/lib/sequel/plugins/modification_detection.rb +15 -5
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +6 -5
- data/lib/sequel/plugins/nested_attributes.rb +61 -31
- data/lib/sequel/plugins/optimistic_locking.rb +3 -3
- data/lib/sequel/plugins/pg_array_associations.rb +103 -53
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +350 -0
- data/lib/sequel/plugins/pg_row.rb +5 -51
- data/lib/sequel/plugins/prepared_statements.rb +60 -72
- data/lib/sequel/plugins/prepared_statements_safe.rb +9 -4
- data/lib/sequel/plugins/rcte_tree.rb +68 -82
- data/lib/sequel/plugins/require_valid_schema.rb +67 -0
- data/lib/sequel/plugins/serialization.rb +43 -46
- data/lib/sequel/plugins/serialization_modification_detection.rb +3 -2
- data/lib/sequel/plugins/sharding.rb +15 -10
- data/lib/sequel/plugins/single_table_inheritance.rb +67 -28
- data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/split_values.rb +11 -6
- data/lib/sequel/plugins/sql_comments.rb +189 -0
- data/lib/sequel/plugins/static_cache.rb +77 -53
- data/lib/sequel/plugins/static_cache_cache.rb +53 -0
- data/lib/sequel/plugins/string_stripper.rb +3 -3
- data/lib/sequel/plugins/subclasses.rb +43 -10
- data/lib/sequel/plugins/subset_conditions.rb +15 -5
- data/lib/sequel/plugins/table_select.rb +2 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +96 -12
- data/lib/sequel/plugins/throw_failures.rb +110 -0
- data/lib/sequel/plugins/timestamps.rb +20 -8
- data/lib/sequel/plugins/touch.rb +19 -8
- data/lib/sequel/plugins/tree.rb +62 -32
- data/lib/sequel/plugins/typecast_on_load.rb +12 -4
- data/lib/sequel/plugins/unlimited_update.rb +1 -7
- data/lib/sequel/plugins/unused_associations.rb +521 -0
- data/lib/sequel/plugins/update_or_create.rb +4 -4
- data/lib/sequel/plugins/update_primary_key.rb +1 -1
- data/lib/sequel/plugins/update_refresh.rb +26 -15
- data/lib/sequel/plugins/uuid.rb +7 -11
- data/lib/sequel/plugins/validate_associated.rb +18 -0
- data/lib/sequel/plugins/validation_class_methods.rb +38 -19
- data/lib/sequel/plugins/validation_contexts.rb +49 -0
- data/lib/sequel/plugins/validation_helpers.rb +57 -41
- data/lib/sequel/plugins/whitelist_security.rb +122 -0
- data/lib/sequel/plugins/xml_serializer.rb +30 -31
- data/lib/sequel/sql.rb +471 -331
- data/lib/sequel/timezones.rb +78 -47
- data/lib/sequel/version.rb +7 -2
- data/lib/sequel.rb +1 -1
- metadata +217 -521
- data/Rakefile +0 -164
- data/doc/active_record.rdoc +0 -928
- data/doc/release_notes/1.0.txt +0 -38
- data/doc/release_notes/1.1.txt +0 -143
- data/doc/release_notes/1.3.txt +0 -101
- data/doc/release_notes/1.4.0.txt +0 -53
- data/doc/release_notes/1.5.0.txt +0 -155
- data/doc/release_notes/2.0.0.txt +0 -298
- data/doc/release_notes/2.1.0.txt +0 -271
- data/doc/release_notes/2.10.0.txt +0 -328
- data/doc/release_notes/2.11.0.txt +0 -215
- data/doc/release_notes/2.12.0.txt +0 -534
- data/doc/release_notes/2.2.0.txt +0 -253
- data/doc/release_notes/2.3.0.txt +0 -88
- data/doc/release_notes/2.4.0.txt +0 -106
- data/doc/release_notes/2.5.0.txt +0 -137
- data/doc/release_notes/2.6.0.txt +0 -157
- data/doc/release_notes/2.7.0.txt +0 -166
- data/doc/release_notes/2.8.0.txt +0 -171
- data/doc/release_notes/2.9.0.txt +0 -97
- data/doc/release_notes/3.0.0.txt +0 -221
- data/doc/release_notes/3.1.0.txt +0 -406
- data/doc/release_notes/3.10.0.txt +0 -286
- data/doc/release_notes/3.11.0.txt +0 -254
- data/doc/release_notes/3.12.0.txt +0 -304
- data/doc/release_notes/3.13.0.txt +0 -210
- data/doc/release_notes/3.14.0.txt +0 -118
- data/doc/release_notes/3.15.0.txt +0 -78
- data/doc/release_notes/3.16.0.txt +0 -45
- data/doc/release_notes/3.17.0.txt +0 -58
- data/doc/release_notes/3.18.0.txt +0 -120
- data/doc/release_notes/3.19.0.txt +0 -67
- data/doc/release_notes/3.2.0.txt +0 -268
- data/doc/release_notes/3.20.0.txt +0 -41
- data/doc/release_notes/3.21.0.txt +0 -87
- data/doc/release_notes/3.22.0.txt +0 -39
- data/doc/release_notes/3.23.0.txt +0 -172
- data/doc/release_notes/3.24.0.txt +0 -420
- data/doc/release_notes/3.25.0.txt +0 -88
- data/doc/release_notes/3.26.0.txt +0 -88
- data/doc/release_notes/3.27.0.txt +0 -82
- data/doc/release_notes/3.28.0.txt +0 -304
- data/doc/release_notes/3.29.0.txt +0 -459
- data/doc/release_notes/3.3.0.txt +0 -192
- data/doc/release_notes/3.30.0.txt +0 -135
- data/doc/release_notes/3.31.0.txt +0 -146
- data/doc/release_notes/3.32.0.txt +0 -202
- data/doc/release_notes/3.33.0.txt +0 -157
- data/doc/release_notes/3.34.0.txt +0 -671
- data/doc/release_notes/3.35.0.txt +0 -144
- data/doc/release_notes/3.36.0.txt +0 -245
- data/doc/release_notes/3.37.0.txt +0 -338
- data/doc/release_notes/3.38.0.txt +0 -234
- data/doc/release_notes/3.39.0.txt +0 -237
- data/doc/release_notes/3.4.0.txt +0 -325
- data/doc/release_notes/3.40.0.txt +0 -73
- data/doc/release_notes/3.41.0.txt +0 -155
- data/doc/release_notes/3.42.0.txt +0 -74
- data/doc/release_notes/3.43.0.txt +0 -105
- data/doc/release_notes/3.44.0.txt +0 -152
- data/doc/release_notes/3.45.0.txt +0 -179
- data/doc/release_notes/3.46.0.txt +0 -122
- data/doc/release_notes/3.47.0.txt +0 -270
- data/doc/release_notes/3.48.0.txt +0 -477
- data/doc/release_notes/3.5.0.txt +0 -510
- data/doc/release_notes/3.6.0.txt +0 -366
- data/doc/release_notes/3.7.0.txt +0 -179
- data/doc/release_notes/3.8.0.txt +0 -151
- data/doc/release_notes/3.9.0.txt +0 -233
- data/doc/release_notes/4.0.0.txt +0 -262
- data/doc/release_notes/4.1.0.txt +0 -85
- data/doc/release_notes/4.10.0.txt +0 -226
- data/doc/release_notes/4.11.0.txt +0 -147
- data/doc/release_notes/4.12.0.txt +0 -105
- data/doc/release_notes/4.13.0.txt +0 -169
- data/doc/release_notes/4.14.0.txt +0 -68
- data/doc/release_notes/4.15.0.txt +0 -56
- data/doc/release_notes/4.16.0.txt +0 -36
- data/doc/release_notes/4.17.0.txt +0 -38
- data/doc/release_notes/4.18.0.txt +0 -36
- data/doc/release_notes/4.19.0.txt +0 -45
- data/doc/release_notes/4.2.0.txt +0 -129
- data/doc/release_notes/4.20.0.txt +0 -79
- data/doc/release_notes/4.21.0.txt +0 -94
- data/doc/release_notes/4.22.0.txt +0 -72
- data/doc/release_notes/4.23.0.txt +0 -65
- data/doc/release_notes/4.24.0.txt +0 -99
- data/doc/release_notes/4.25.0.txt +0 -181
- data/doc/release_notes/4.26.0.txt +0 -44
- data/doc/release_notes/4.27.0.txt +0 -78
- data/doc/release_notes/4.28.0.txt +0 -57
- data/doc/release_notes/4.29.0.txt +0 -41
- data/doc/release_notes/4.3.0.txt +0 -40
- data/doc/release_notes/4.30.0.txt +0 -37
- data/doc/release_notes/4.31.0.txt +0 -57
- data/doc/release_notes/4.32.0.txt +0 -132
- data/doc/release_notes/4.33.0.txt +0 -88
- data/doc/release_notes/4.34.0.txt +0 -86
- data/doc/release_notes/4.35.0.txt +0 -130
- data/doc/release_notes/4.36.0.txt +0 -116
- data/doc/release_notes/4.4.0.txt +0 -92
- data/doc/release_notes/4.5.0.txt +0 -34
- data/doc/release_notes/4.6.0.txt +0 -30
- data/doc/release_notes/4.7.0.txt +0 -103
- data/doc/release_notes/4.8.0.txt +0 -175
- data/doc/release_notes/4.9.0.txt +0 -190
- data/lib/sequel/adapters/cubrid.rb +0 -144
- data/lib/sequel/adapters/do/mysql.rb +0 -66
- data/lib/sequel/adapters/do/postgres.rb +0 -44
- data/lib/sequel/adapters/do/sqlite3.rb +0 -42
- data/lib/sequel/adapters/do.rb +0 -158
- data/lib/sequel/adapters/jdbc/as400.rb +0 -84
- data/lib/sequel/adapters/jdbc/cubrid.rb +0 -64
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -36
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -33
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -33
- data/lib/sequel/adapters/odbc/progress.rb +0 -10
- data/lib/sequel/adapters/shared/cubrid.rb +0 -245
- data/lib/sequel/adapters/shared/firebird.rb +0 -247
- data/lib/sequel/adapters/shared/informix.rb +0 -54
- data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +0 -152
- data/lib/sequel/adapters/shared/progress.rb +0 -40
- data/lib/sequel/adapters/swift/mysql.rb +0 -49
- data/lib/sequel/adapters/swift/postgres.rb +0 -47
- data/lib/sequel/adapters/swift/sqlite.rb +0 -49
- data/lib/sequel/adapters/swift.rb +0 -160
- data/lib/sequel/adapters/utils/pg_types.rb +0 -70
- data/lib/sequel/dataset/mutation.rb +0 -111
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -5
- data/lib/sequel/extensions/filter_having.rb +0 -63
- data/lib/sequel/extensions/hash_aliases.rb +0 -49
- data/lib/sequel/extensions/meta_def.rb +0 -35
- data/lib/sequel/extensions/query_literals.rb +0 -84
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -24
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -122
- data/lib/sequel/extensions/set_overrides.rb +0 -76
- data/lib/sequel/no_core_ext.rb +0 -3
- data/lib/sequel/plugins/association_autoreloading.rb +0 -9
- data/lib/sequel/plugins/identifier_columns.rb +0 -47
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -9
- data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -81
- data/lib/sequel/plugins/prepared_statements_associations.rb +0 -119
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -61
- data/lib/sequel/plugins/schema.rb +0 -82
- data/lib/sequel/plugins/scissors.rb +0 -35
- data/spec/adapter_spec.rb +0 -4
- data/spec/adapters/db2_spec.rb +0 -160
- data/spec/adapters/firebird_spec.rb +0 -411
- data/spec/adapters/informix_spec.rb +0 -100
- data/spec/adapters/mssql_spec.rb +0 -733
- data/spec/adapters/mysql_spec.rb +0 -1319
- data/spec/adapters/oracle_spec.rb +0 -313
- data/spec/adapters/postgres_spec.rb +0 -3790
- data/spec/adapters/spec_helper.rb +0 -49
- data/spec/adapters/sqlanywhere_spec.rb +0 -170
- data/spec/adapters/sqlite_spec.rb +0 -688
- data/spec/bin_spec.rb +0 -258
- data/spec/core/connection_pool_spec.rb +0 -1045
- data/spec/core/database_spec.rb +0 -2636
- data/spec/core/dataset_spec.rb +0 -5175
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1247
- data/spec/core/mock_adapter_spec.rb +0 -464
- data/spec/core/object_graph_spec.rb +0 -303
- data/spec/core/placeholder_literalizer_spec.rb +0 -163
- data/spec/core/schema_generator_spec.rb +0 -203
- data/spec/core/schema_spec.rb +0 -1676
- data/spec/core/spec_helper.rb +0 -34
- data/spec/core/version_spec.rb +0 -7
- data/spec/core_extensions_spec.rb +0 -699
- data/spec/core_model_spec.rb +0 -2
- data/spec/core_spec.rb +0 -1
- data/spec/extensions/accessed_columns_spec.rb +0 -51
- data/spec/extensions/active_model_spec.rb +0 -85
- data/spec/extensions/after_initialize_spec.rb +0 -24
- data/spec/extensions/arbitrary_servers_spec.rb +0 -109
- data/spec/extensions/association_dependencies_spec.rb +0 -117
- data/spec/extensions/association_pks_spec.rb +0 -405
- data/spec/extensions/association_proxies_spec.rb +0 -86
- data/spec/extensions/auto_validations_spec.rb +0 -192
- data/spec/extensions/before_after_save_spec.rb +0 -40
- data/spec/extensions/blacklist_security_spec.rb +0 -88
- data/spec/extensions/blank_spec.rb +0 -69
- data/spec/extensions/boolean_readers_spec.rb +0 -93
- data/spec/extensions/boolean_subsets_spec.rb +0 -47
- data/spec/extensions/caching_spec.rb +0 -270
- data/spec/extensions/class_table_inheritance_spec.rb +0 -444
- data/spec/extensions/column_conflicts_spec.rb +0 -60
- data/spec/extensions/column_select_spec.rb +0 -108
- data/spec/extensions/columns_introspection_spec.rb +0 -91
- data/spec/extensions/composition_spec.rb +0 -242
- data/spec/extensions/connection_expiration_spec.rb +0 -121
- data/spec/extensions/connection_validator_spec.rb +0 -127
- data/spec/extensions/constraint_validations_plugin_spec.rb +0 -288
- data/spec/extensions/constraint_validations_spec.rb +0 -389
- data/spec/extensions/core_refinements_spec.rb +0 -519
- data/spec/extensions/csv_serializer_spec.rb +0 -180
- data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
- data/spec/extensions/dataset_associations_spec.rb +0 -343
- data/spec/extensions/dataset_source_alias_spec.rb +0 -51
- data/spec/extensions/date_arithmetic_spec.rb +0 -167
- data/spec/extensions/defaults_setter_spec.rb +0 -102
- data/spec/extensions/delay_add_association_spec.rb +0 -74
- data/spec/extensions/dirty_spec.rb +0 -180
- data/spec/extensions/duplicate_columns_handler_spec.rb +0 -110
- data/spec/extensions/eager_each_spec.rb +0 -66
- data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
- data/spec/extensions/error_splitter_spec.rb +0 -18
- data/spec/extensions/error_sql_spec.rb +0 -20
- data/spec/extensions/eval_inspect_spec.rb +0 -73
- data/spec/extensions/filter_having_spec.rb +0 -40
- data/spec/extensions/force_encoding_spec.rb +0 -114
- data/spec/extensions/from_block_spec.rb +0 -21
- data/spec/extensions/graph_each_spec.rb +0 -119
- data/spec/extensions/hash_aliases_spec.rb +0 -24
- data/spec/extensions/hook_class_methods_spec.rb +0 -429
- data/spec/extensions/identifier_columns_spec.rb +0 -17
- data/spec/extensions/inflector_spec.rb +0 -183
- data/spec/extensions/input_transformer_spec.rb +0 -54
- data/spec/extensions/insert_returning_select_spec.rb +0 -46
- data/spec/extensions/instance_filters_spec.rb +0 -79
- data/spec/extensions/instance_hooks_spec.rb +0 -276
- data/spec/extensions/inverted_subsets_spec.rb +0 -33
- data/spec/extensions/json_serializer_spec.rb +0 -304
- data/spec/extensions/lazy_attributes_spec.rb +0 -170
- data/spec/extensions/list_spec.rb +0 -278
- data/spec/extensions/looser_typecasting_spec.rb +0 -43
- data/spec/extensions/many_through_many_spec.rb +0 -2172
- data/spec/extensions/meta_def_spec.rb +0 -21
- data/spec/extensions/migration_spec.rb +0 -728
- data/spec/extensions/modification_detection_spec.rb +0 -80
- data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -91
- data/spec/extensions/named_timezones_spec.rb +0 -108
- data/spec/extensions/nested_attributes_spec.rb +0 -697
- data/spec/extensions/no_auto_literal_strings_spec.rb +0 -65
- data/spec/extensions/null_dataset_spec.rb +0 -85
- data/spec/extensions/optimistic_locking_spec.rb +0 -128
- data/spec/extensions/pagination_spec.rb +0 -118
- data/spec/extensions/pg_array_associations_spec.rb +0 -736
- data/spec/extensions/pg_array_ops_spec.rb +0 -143
- data/spec/extensions/pg_array_spec.rb +0 -390
- data/spec/extensions/pg_enum_spec.rb +0 -92
- data/spec/extensions/pg_hstore_ops_spec.rb +0 -236
- data/spec/extensions/pg_hstore_spec.rb +0 -206
- data/spec/extensions/pg_inet_ops_spec.rb +0 -101
- data/spec/extensions/pg_inet_spec.rb +0 -52
- data/spec/extensions/pg_interval_spec.rb +0 -76
- data/spec/extensions/pg_json_ops_spec.rb +0 -275
- data/spec/extensions/pg_json_spec.rb +0 -218
- data/spec/extensions/pg_loose_count_spec.rb +0 -17
- data/spec/extensions/pg_range_ops_spec.rb +0 -58
- data/spec/extensions/pg_range_spec.rb +0 -473
- data/spec/extensions/pg_row_ops_spec.rb +0 -60
- data/spec/extensions/pg_row_plugin_spec.rb +0 -62
- data/spec/extensions/pg_row_spec.rb +0 -360
- data/spec/extensions/pg_static_cache_updater_spec.rb +0 -92
- data/spec/extensions/pg_typecast_on_load_spec.rb +0 -63
- data/spec/extensions/prepared_statements_associations_spec.rb +0 -159
- data/spec/extensions/prepared_statements_safe_spec.rb +0 -61
- data/spec/extensions/prepared_statements_spec.rb +0 -103
- data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -31
- data/spec/extensions/pretty_table_spec.rb +0 -92
- data/spec/extensions/query_literals_spec.rb +0 -183
- data/spec/extensions/query_spec.rb +0 -102
- data/spec/extensions/rcte_tree_spec.rb +0 -392
- data/spec/extensions/round_timestamps_spec.rb +0 -43
- data/spec/extensions/schema_caching_spec.rb +0 -41
- data/spec/extensions/schema_dumper_spec.rb +0 -814
- data/spec/extensions/schema_spec.rb +0 -117
- data/spec/extensions/scissors_spec.rb +0 -26
- data/spec/extensions/select_remove_spec.rb +0 -38
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -101
- data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
- data/spec/extensions/serialization_spec.rb +0 -362
- data/spec/extensions/server_block_spec.rb +0 -90
- data/spec/extensions/server_logging_spec.rb +0 -45
- data/spec/extensions/set_overrides_spec.rb +0 -61
- data/spec/extensions/sharding_spec.rb +0 -198
- data/spec/extensions/shared_caching_spec.rb +0 -175
- data/spec/extensions/single_table_inheritance_spec.rb +0 -297
- data/spec/extensions/singular_table_names_spec.rb +0 -22
- data/spec/extensions/skip_create_refresh_spec.rb +0 -17
- data/spec/extensions/spec_helper.rb +0 -71
- data/spec/extensions/split_array_nil_spec.rb +0 -24
- data/spec/extensions/split_values_spec.rb +0 -22
- data/spec/extensions/sql_comments_spec.rb +0 -27
- data/spec/extensions/sql_expr_spec.rb +0 -60
- data/spec/extensions/static_cache_spec.rb +0 -361
- data/spec/extensions/string_agg_spec.rb +0 -85
- data/spec/extensions/string_date_time_spec.rb +0 -95
- data/spec/extensions/string_stripper_spec.rb +0 -68
- data/spec/extensions/subclasses_spec.rb +0 -66
- data/spec/extensions/subset_conditions_spec.rb +0 -38
- data/spec/extensions/table_select_spec.rb +0 -71
- data/spec/extensions/tactical_eager_loading_spec.rb +0 -136
- data/spec/extensions/thread_local_timezones_spec.rb +0 -67
- data/spec/extensions/timestamps_spec.rb +0 -175
- data/spec/extensions/to_dot_spec.rb +0 -154
- data/spec/extensions/touch_spec.rb +0 -203
- data/spec/extensions/tree_spec.rb +0 -274
- data/spec/extensions/typecast_on_load_spec.rb +0 -80
- data/spec/extensions/unlimited_update_spec.rb +0 -20
- data/spec/extensions/update_or_create_spec.rb +0 -87
- data/spec/extensions/update_primary_key_spec.rb +0 -100
- data/spec/extensions/update_refresh_spec.rb +0 -53
- data/spec/extensions/uuid_spec.rb +0 -106
- data/spec/extensions/validate_associated_spec.rb +0 -52
- data/spec/extensions/validation_class_methods_spec.rb +0 -1027
- data/spec/extensions/validation_helpers_spec.rb +0 -554
- data/spec/extensions/xml_serializer_spec.rb +0 -207
- data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
- data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
- data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
- data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
- data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/double_migration/001_create_sessions.rb +0 -9
- data/spec/files/double_migration/002_create_nodes.rb +0 -19
- data/spec/files/double_migration/003_3_create_users.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
- data/spec/files/empty_migration/001_create_sessions.rb +0 -9
- data/spec/files/empty_migration/002_create_nodes.rb +0 -0
- data/spec/files/empty_migration/003_3_create_users.rb +0 -4
- data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
- data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
- data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
- data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
- data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/reversible_migrations/001_reversible.rb +0 -5
- data/spec/files/reversible_migrations/002_reversible.rb +0 -5
- data/spec/files/reversible_migrations/003_reversible.rb +0 -5
- data/spec/files/reversible_migrations/004_reversible.rb +0 -5
- data/spec/files/reversible_migrations/005_reversible.rb +0 -10
- data/spec/files/reversible_migrations/006_reversible.rb +0 -10
- data/spec/files/reversible_migrations/007_reversible.rb +0 -10
- data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
- data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
- data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
- data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
- data/spec/guards_helper.rb +0 -55
- data/spec/integration/associations_test.rb +0 -2506
- data/spec/integration/database_test.rb +0 -113
- data/spec/integration/dataset_test.rb +0 -1858
- data/spec/integration/eager_loader_test.rb +0 -687
- data/spec/integration/migrator_test.rb +0 -262
- data/spec/integration/model_test.rb +0 -230
- data/spec/integration/plugin_test.rb +0 -2297
- data/spec/integration/prepared_statement_test.rb +0 -467
- data/spec/integration/schema_test.rb +0 -815
- data/spec/integration/spec_helper.rb +0 -56
- data/spec/integration/timezone_test.rb +0 -86
- data/spec/integration/transaction_test.rb +0 -406
- data/spec/integration/type_test.rb +0 -133
- data/spec/model/association_reflection_spec.rb +0 -565
- data/spec/model/associations_spec.rb +0 -4589
- data/spec/model/base_spec.rb +0 -759
- data/spec/model/class_dataset_methods_spec.rb +0 -150
- data/spec/model/dataset_methods_spec.rb +0 -149
- data/spec/model/eager_loading_spec.rb +0 -2197
- data/spec/model/hooks_spec.rb +0 -604
- data/spec/model/inflector_spec.rb +0 -26
- data/spec/model/model_spec.rb +0 -1097
- data/spec/model/plugins_spec.rb +0 -299
- data/spec/model/record_spec.rb +0 -2162
- data/spec/model/spec_helper.rb +0 -46
- data/spec/model/validations_spec.rb +0 -193
- data/spec/model_no_assoc_spec.rb +0 -1
- data/spec/model_spec.rb +0 -1
- data/spec/plugin_spec.rb +0 -1
- data/spec/sequel_coverage.rb +0 -15
- data/spec/spec_config.rb +0 -10
data/doc/release_notes/3.0.0.txt
DELETED
@@ -1,221 +0,0 @@
|
|
1
|
-
Deprecated Methods/Features Removed
|
2
|
-
-----------------------------------
|
3
|
-
|
4
|
-
Methods and features that were deprecated in 2.12.0 have been removed
|
5
|
-
in 3.0.0. Many features were moved into plugins or extensions, so in
|
6
|
-
many cases you just need to require an extension or use Model.plugin
|
7
|
-
and not make any changes to your code. See the 2.12.0 release notes
|
8
|
-
for the list of methods/features deprecated in 2.12.0.
|
9
|
-
|
10
|
-
If you are upgrading from a previous 2.x release, please upgrade to
|
11
|
-
2.12.0 first, fix your code to remove all deprecation warnings, and
|
12
|
-
then upgrade to 3.0.0.
|
13
|
-
|
14
|
-
New Adapter
|
15
|
-
-----------
|
16
|
-
|
17
|
-
* Sequel now has an Amalgalite adapter. Amalgalite is a ruby
|
18
|
-
extension that embeds SQLite without requiring a separate SQLite
|
19
|
-
installation. The adapter is functionality complete but
|
20
|
-
significantly slower than the native SQLite adapter.
|
21
|
-
|
22
|
-
New Features
|
23
|
-
------------
|
24
|
-
|
25
|
-
* The JDBC, PostgreSQL, MySQL, and SQLite adapters all now have a
|
26
|
-
Database#indexes method that returns indexes for a given table:
|
27
|
-
|
28
|
-
DB.indexes(:songs)
|
29
|
-
=> {:songs_name_index=>{:unique=>true, :columns=>[:name]},
|
30
|
-
:songs_lyricid_index=>{:unique=>false, :columns=>[:lyricid]}}
|
31
|
-
|
32
|
-
* A schema_dumper extension was added to Sequel. It supports dumping
|
33
|
-
the schema of a table (including indexes) as a string that can be
|
34
|
-
evaluated in the context of a Database object to create the table.
|
35
|
-
It also supports dumping all tables in the database as a string
|
36
|
-
containing a Migration subclass that will rebuild the database.
|
37
|
-
|
38
|
-
require 'sequel/extensions/schema_dumper'
|
39
|
-
DB.dump_table_schema(:table)
|
40
|
-
DB.dump_schema_migration
|
41
|
-
DB.dump_schema_migration(:same_db=>true)
|
42
|
-
DB.dump_schema_migration(:indexes=>false)
|
43
|
-
DB.dump_indexes_migration
|
44
|
-
|
45
|
-
The :same_db option causes Sequel to not translate column types
|
46
|
-
to generic column types. By default, the migration created will
|
47
|
-
use generic types so it will run on other databases. However, if
|
48
|
-
you only want to support a single database, using the :same_db
|
49
|
-
option will make the migration use the exact database type parsed
|
50
|
-
from the database.
|
51
|
-
|
52
|
-
The :indexes=>false option causes indexes not be included in the
|
53
|
-
migration. The dump_indexes_migration can be used to create a
|
54
|
-
separate migration with the indexes. This can be useful if you
|
55
|
-
plan on loading a lot of data right after creating the tables,
|
56
|
-
since it is faster to add indexes after the data has been added.
|
57
|
-
|
58
|
-
* Using options with the generic database types is now supported to
|
59
|
-
a limited extent. For example, the following code now works:
|
60
|
-
|
61
|
-
DB.create_table(:table) do
|
62
|
-
String :a, :size=>50 # varchar(50)
|
63
|
-
String :b, :text=>true # text
|
64
|
-
String :c, :fixed=>true, :size=>30 # char(30)
|
65
|
-
Time :ts # timestamp
|
66
|
-
Time :t, :only_time=>true # time
|
67
|
-
end
|
68
|
-
|
69
|
-
* Using Dataset#filter and related methods with multiple arguments
|
70
|
-
now works much more intuitively:
|
71
|
-
|
72
|
-
# 2.12.0
|
73
|
-
dataset.filter(:a, :b=>1) # a IS NULL AND (b = 1) IS NULL
|
74
|
-
# 3.0.0
|
75
|
-
dataset.filter(:a, :b=>1) # a AND b = 1
|
76
|
-
|
77
|
-
* You can now create temporary tables by passing the :temp=>true
|
78
|
-
option to Database#create_table.
|
79
|
-
|
80
|
-
* The Oracle shared adapter now supports emulation of
|
81
|
-
autoincrementing primary keys by creating a sequence and a trigger,
|
82
|
-
similar to how the Firebird adapter works.
|
83
|
-
|
84
|
-
* The Database#database_type method was added that returns a symbol
|
85
|
-
specifying the database type being used. This can be different
|
86
|
-
than Database.adapter_scheme if you are using an adapter like
|
87
|
-
JDBC that allows connecting to multiple different types of
|
88
|
-
databases.
|
89
|
-
|
90
|
-
* Database#drop_index and related methods now support an options
|
91
|
-
hash that respects the :name option, so they can now be used to
|
92
|
-
drop an index that doesn't use the default index name.
|
93
|
-
|
94
|
-
* The PostgreSQL shared adapter now supports a
|
95
|
-
Database#reset_primary_key_sequence method to reset the
|
96
|
-
primary key sequence for a given table, based on code from
|
97
|
-
ActiveRecord.
|
98
|
-
|
99
|
-
* SQL::QualifiedIdentifiers can now be qualified, allowing you to do:
|
100
|
-
|
101
|
-
:column.qualify(:table).qualify(:schema)
|
102
|
-
|
103
|
-
* Using the :db_type=>'mssql' option with the DBI adapter will now
|
104
|
-
load the MSSQL support.
|
105
|
-
|
106
|
-
* The MySQL shared adapter now supports Dataset#full_text_sql, which
|
107
|
-
you can use in queries like the following:
|
108
|
-
|
109
|
-
ds.select(:table.*, ds.full_text_sql(:column, 'value').as(:ft))
|
110
|
-
|
111
|
-
Other Improvements
|
112
|
-
------------------
|
113
|
-
|
114
|
-
* Sequel will now release connections from the connection pool
|
115
|
-
automatically if they are held by a dead thread. This can happen
|
116
|
-
if you are using MRI 1.8 and you are heavily multithreaded or
|
117
|
-
you call Thread#exit! or similar method explicitly. Those methods
|
118
|
-
skip the execution of ensure blocks which normally release the
|
119
|
-
connections when the threads exit.
|
120
|
-
|
121
|
-
* Model#save will now always use the same server when refreshing data
|
122
|
-
after an insert. This fixes an issue when Sequel's master/slave
|
123
|
-
database support is used with models.
|
124
|
-
|
125
|
-
* SQL Array references are now quoted correctly, so code like this
|
126
|
-
now works:
|
127
|
-
|
128
|
-
:table__column.sql_subscript(1)
|
129
|
-
|
130
|
-
* The PostgreSQL shared adapter now handles sequences that need to be
|
131
|
-
quoted correctly (previously these were quoted twice).
|
132
|
-
|
133
|
-
* String quoting on Oracle no longer doubles backslashes.
|
134
|
-
|
135
|
-
* Database#count now works correctly when used on MSSQL when using
|
136
|
-
an adapter that doesn't handle unnamed columns.
|
137
|
-
|
138
|
-
* Full text searching in the MySQL adapter now works correctly when
|
139
|
-
multiple search terms are used.
|
140
|
-
|
141
|
-
* Altering a column's name, type, default, or NULL/NOT NULL status
|
142
|
-
on MySQL now keeps other relevent column information. For example,
|
143
|
-
if you alter a column's type, it'll keep an existing default. This
|
144
|
-
functionality isn't complete, there may be other column information
|
145
|
-
that is lost.
|
146
|
-
|
147
|
-
* Fix creation of an index with a given type on MySQL, since MySQL's
|
148
|
-
documentation lies.
|
149
|
-
|
150
|
-
* The schema parser now handles decimal types with size specifiers,
|
151
|
-
fixing use on MySQL.
|
152
|
-
|
153
|
-
* Dataset#quote_identifier now works correctly when given an
|
154
|
-
SQL::Identifier. This allows you to do:
|
155
|
-
|
156
|
-
dataset.select{sum(hours).as(hours)}
|
157
|
-
|
158
|
-
Backwards Compatibility
|
159
|
-
-----------------------
|
160
|
-
|
161
|
-
* Sequel will now use instance_eval on all virtual row blocks without
|
162
|
-
an argument. This can lead to much nicer code:
|
163
|
-
|
164
|
-
dataset.filter{(number > 10) & (name > 'M')}
|
165
|
-
# WHERE number > 10 AND name > 'M'
|
166
|
-
|
167
|
-
2.12.0 raised a deprecation warning if you used a virtual row block
|
168
|
-
without an argument and you hadn't set
|
169
|
-
Sequel.virtual_row_instance_eval = true.
|
170
|
-
|
171
|
-
* Dataset#exclude now inverts the given argument, instead of negating
|
172
|
-
it. This only changes its behavior if it is called with a hash or
|
173
|
-
array of all two pairs that have more than one element.
|
174
|
-
|
175
|
-
# 2.12.0
|
176
|
-
dataset.exclude(:a=>1, :b=>1) # a != 1 AND b != 1
|
177
|
-
# 3.0.0
|
178
|
-
dataset.exclude(:a=>1, :b=>1) # a != 1 OR b != 1
|
179
|
-
|
180
|
-
This was done for consistency, since exclude would only negate a
|
181
|
-
hash if it was given an argument, it would invert the same hash
|
182
|
-
if you used a block:
|
183
|
-
|
184
|
-
# 2.12.0
|
185
|
-
dataset.exclude{{:a=>1, :b=>1}} # a != 1 OR b != 1
|
186
|
-
|
187
|
-
If you want the previous behavior,
|
188
|
-
change the code to the following:
|
189
|
-
|
190
|
-
dataset.filter({:a=>1, :b=>1}.sql_negate)
|
191
|
-
|
192
|
-
* As noted above, the methods/features deprecated in 2.12.0 were
|
193
|
-
removed.
|
194
|
-
|
195
|
-
* The private Dataset#select_*_sql methods now only take a single
|
196
|
-
argument, the SQL string being built.
|
197
|
-
|
198
|
-
* Dataset#from when called without arguments would previously cause an
|
199
|
-
error to be raised when the SQL string is generated. Now it causes
|
200
|
-
no FROM clause to be used, similar to how Dataset#select with no
|
201
|
-
arguments causes SELECT * to be used.
|
202
|
-
|
203
|
-
* The internals of the generic type support and the schema generators
|
204
|
-
were changed significantly, which could have some fallout in terms
|
205
|
-
of old migrations breaking if they used the generic types and were
|
206
|
-
relying on some undocumented behavior (such as using Integer as a
|
207
|
-
type with the :unsigned option).
|
208
|
-
|
209
|
-
* The Firebird adapter no longer translates the text database
|
210
|
-
specific type. Use the following instead:
|
211
|
-
|
212
|
-
String :column, :text=>true
|
213
|
-
|
214
|
-
* The MySQL shared adapter used to use the timestamp type for Time,
|
215
|
-
now it uses datetime. This is because the timestamp type cannot
|
216
|
-
represent everything that the ruby Time class can represent.
|
217
|
-
|
218
|
-
* Metaprogramming#metaattr_accessor and #metaattr_reader methods were
|
219
|
-
removed.
|
220
|
-
|
221
|
-
* Dataset#irregular_function_sql was removed.
|
data/doc/release_notes/3.1.0.txt
DELETED
@@ -1,406 +0,0 @@
|
|
1
|
-
New Plugins
|
2
|
-
-----------
|
3
|
-
|
4
|
-
3 new plugins were added that implement features supported by
|
5
|
-
DataMapper: identity_map, tactical_eager_loading, and
|
6
|
-
lazy_attributes. These plugins don't add any real new features,
|
7
|
-
since you can do most of what they allow before simply by being
|
8
|
-
a little more explicit in your Sequel code. However, some people
|
9
|
-
prefer a less explicit approach that uses a bit more magic, and
|
10
|
-
now Sequel can accomodate them.
|
11
|
-
|
12
|
-
* The identity_map plugin allows you to create a 1-1
|
13
|
-
correspondence of model objects to database rows via a temporary
|
14
|
-
thread-local identity map. It makes the following statment true:
|
15
|
-
|
16
|
-
Sequel::Model.with_identity_map do
|
17
|
-
Album.filter{(id > 0) & (id < 2)}.first.object_id == \
|
18
|
-
Album.first(:id=>1).object_id
|
19
|
-
end
|
20
|
-
|
21
|
-
As the code above implies, you need to use the with_identity_map
|
22
|
-
method with a block to use the identity mapping feature.
|
23
|
-
|
24
|
-
By itself, identity maps don't offer much, but Sequel uses them
|
25
|
-
as a cache when looking up objects by primary key or looking up
|
26
|
-
many_to_one associated objects. Basically, it can be used as a
|
27
|
-
performance enhancer, and it also allows the support of the
|
28
|
-
lazy_attributes plugin.
|
29
|
-
|
30
|
-
The identity_map plugin is expected to be most useful in web
|
31
|
-
applications. With that in mind, here's a Rack middleware that
|
32
|
-
wraps each request in a with_identity_map call, so the
|
33
|
-
identity_map features are available inside the web app:
|
34
|
-
|
35
|
-
Sequel::Model.plugin :identity_map
|
36
|
-
class SequelIdentityMap
|
37
|
-
def initialize(app)
|
38
|
-
@app = app
|
39
|
-
end
|
40
|
-
def call(env)
|
41
|
-
Sequel::Model.with_identity_map{@app.call(env)}
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
* The tactical_eager_loading plugin allows you to eagerly load an
|
46
|
-
association for all models retrieved in the same group whenever
|
47
|
-
one of the models accesses the association:
|
48
|
-
|
49
|
-
# 2 queries total
|
50
|
-
Album.filter{id<100}.all do |a|
|
51
|
-
a.artists
|
52
|
-
end
|
53
|
-
|
54
|
-
In order for this correctly, you must use Dataset#all to load the
|
55
|
-
records, you cannot iterate over them via Dataset#each. This is
|
56
|
-
because eager loading requires that you have all records in
|
57
|
-
advance, and when using Dataset#each you cannot know about later
|
58
|
-
records in the dataset.
|
59
|
-
|
60
|
-
Before, you could just be explicit about the associations you
|
61
|
-
needed and make sure to eagerly load them using eager before
|
62
|
-
calling Dataset#all.
|
63
|
-
|
64
|
-
* The lazy_attributes plugin builds on the identity_map and
|
65
|
-
tactical_eager_loading plugins and allows you to create
|
66
|
-
attributes that are lazily loaded from the database:
|
67
|
-
|
68
|
-
Album.plugin :lazy_attributes, :review
|
69
|
-
|
70
|
-
This will remove the :review attribute from being selected by
|
71
|
-
default. If you try to access the attribute after it is selected,
|
72
|
-
it'll retrieve the value from the database. If the object was
|
73
|
-
retrieved with a group of other objects and an identity map is in
|
74
|
-
use, it'll retrieve the lazy attribute for the entire group of
|
75
|
-
objects at once, similar to the tatical_eager_loading plugin:
|
76
|
-
|
77
|
-
# 2 queries total
|
78
|
-
Sequel::Model.with_identity_map do
|
79
|
-
Album.filter{id<100}.all do |a|
|
80
|
-
a.review
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
Before, you could just set the default selected columns for a model
|
85
|
-
to not include the lazy attributes, and just use select_more to
|
86
|
-
add them to any query where the resulting model objects will
|
87
|
-
need the attributes.
|
88
|
-
|
89
|
-
* A many_through_many plugin was also added. This very powerful
|
90
|
-
plugin allows you to create associations to multiple objects through
|
91
|
-
multiple join tables. Here are some examples:
|
92
|
-
|
93
|
-
# Assume the following many to many associations:
|
94
|
-
Artist.many_to_many :albums
|
95
|
-
Album.many_to_many :tags
|
96
|
-
|
97
|
-
# Same as Artist.many_to_many :albums
|
98
|
-
Artist.many_through_many :albums,
|
99
|
-
[[:albums_artists, :artist_id, :album_id]]
|
100
|
-
|
101
|
-
# All tags associated to any album this artist is associated to
|
102
|
-
Artist.many_through_many :tags,
|
103
|
-
[[:albums_artists, :artist_id, :album_id],
|
104
|
-
[:albums, :id, :id],
|
105
|
-
[:albums_tags, :album_id, :tag_id]]
|
106
|
-
|
107
|
-
# All artists associated to any album this artist is associated to
|
108
|
-
Artist.many_through_many :artists,
|
109
|
-
[[:albums_artists, :artist_id, :album_id],
|
110
|
-
[:albums, :id, :id],
|
111
|
-
[:albums_artists, :album_id, :artist_id]]
|
112
|
-
|
113
|
-
# All albums by artists that are associated to any album this
|
114
|
-
# artist is associated to
|
115
|
-
Artist.many_through_many :artist_albums,
|
116
|
-
[[:albums_artists, :artist_id, :album_id],
|
117
|
-
[:albums, :id, :id],
|
118
|
-
[:albums_artists, :album_id, :artist_id],
|
119
|
-
[:artists, :id, :id],
|
120
|
-
[:albums_artists, :artist_id, :album_id]]
|
121
|
-
|
122
|
-
Basically, for each join table between this model and the
|
123
|
-
associated model, you use an array with a join table name, left key
|
124
|
-
name (key closer to this model), and right key name (key closer to
|
125
|
-
the associated model).
|
126
|
-
|
127
|
-
In usual Sequel fashion, this association type works not just
|
128
|
-
for single objects, but it can also be eagerly loaded via eager or
|
129
|
-
eager_graph. There are numerous additional configuration options,
|
130
|
-
please see the RDoc for details.
|
131
|
-
|
132
|
-
New bin/sequel Features
|
133
|
-
-----------------------
|
134
|
-
|
135
|
-
The bin/sequel command line tool now supports the following options:
|
136
|
-
|
137
|
-
* -C: Copies one database to another. You must specify two database
|
138
|
-
arguments. Works similar to Taps, copying the table schema, then
|
139
|
-
the table data, then creating the indexes.
|
140
|
-
|
141
|
-
* -d: Dump the schema of the database in the database-independent
|
142
|
-
migration format.
|
143
|
-
|
144
|
-
* -D: Dump the schema of the database in the database-specific
|
145
|
-
migration format.
|
146
|
-
|
147
|
-
* -h: Display the help
|
148
|
-
|
149
|
-
* -t: Output the full backtrace if an exception is raised
|
150
|
-
|
151
|
-
The bin/sequel tool is now better about checking which options can
|
152
|
-
be used together. It also now supports using the -L option multiple
|
153
|
-
times and having it load model files from multiple directory trees.
|
154
|
-
|
155
|
-
New Features
|
156
|
-
------------
|
157
|
-
|
158
|
-
* Dataset#qualify_to and #qualify_to_first_source were added. They
|
159
|
-
allow you to qualify unqualified columns in the current dataset
|
160
|
-
to the given table or the first source. This can be used to join
|
161
|
-
a dataset that has unqualified columns to a new table which has
|
162
|
-
columns with the same name.
|
163
|
-
|
164
|
-
For example, take this dataset:
|
165
|
-
|
166
|
-
ds = DB[:albums].select(:name).order(:name).filter(:id=>1)
|
167
|
-
# SELECT name FROM albums WHERE (id = 1) ORDER BY name
|
168
|
-
|
169
|
-
Let's say you want to join it to the artists table:
|
170
|
-
|
171
|
-
ds2 = ds.join(:artists, :id=>:artist_id)
|
172
|
-
# SELECT name FROM albums
|
173
|
-
# INNER JOIN artists ON (artists.id = albums.artist_id)
|
174
|
-
# WHERE (id = 1) ORDER BY name
|
175
|
-
|
176
|
-
That's going to give you an error, as the artists table already has
|
177
|
-
columns named id and name. This new feature allows you to do the
|
178
|
-
following:
|
179
|
-
|
180
|
-
ds2 = ds.qualify_to_first_source.join(:artists, :id=>:artist_id)
|
181
|
-
# SELECT albums.name FROM albums
|
182
|
-
# INNER JOIN artists ON (artists.id = albums.artist_id)
|
183
|
-
# WHERE (albums.id = 1) ORDER BY albums.name
|
184
|
-
|
185
|
-
By doing this, all unqualified columns are qualified, so you get
|
186
|
-
a usable query. This is expected to be most useful for users that
|
187
|
-
have a default order or filter on their models and want to join
|
188
|
-
the model to another table. Before you had to replace the filters,
|
189
|
-
selection, etc. manually, or use qualified columns by default even
|
190
|
-
though the weren't needed in most cases.
|
191
|
-
|
192
|
-
* Savepoints are now supported using SQLite and MySQL, assuming you
|
193
|
-
are using a database version that supports them. You need to
|
194
|
-
pass the :savepoint option to Database#transaction to use a
|
195
|
-
savepoint.
|
196
|
-
|
197
|
-
* Model plugins can now depend on other plugins, simply by calling
|
198
|
-
the Model.plugin method inside the plugin's apply method:
|
199
|
-
|
200
|
-
module LazyAttributes
|
201
|
-
def self.apply(model)
|
202
|
-
model.plugin :tactical_eager_loading
|
203
|
-
end
|
204
|
-
|
205
|
-
* Model.plugin now takes a block with is passed to the plugin's
|
206
|
-
apply and configure method (see Backwards Compatibility section for
|
207
|
-
more information on the configure method).
|
208
|
-
|
209
|
-
* You can see which plugins are loaded for a model by using
|
210
|
-
Model.plugins.
|
211
|
-
|
212
|
-
* You can use Sequel.extension method to load extensions:
|
213
|
-
|
214
|
-
Sequel.extension :pagination, :query
|
215
|
-
|
216
|
-
This will only load extensions that ship with Sequel, unlike the
|
217
|
-
Model.plugin method which will also load external plugins.
|
218
|
-
|
219
|
-
* You can now use Database#create_table? to create the table if it
|
220
|
-
doesn't already exist (a very common need, it seems). The schema
|
221
|
-
plugin now supports Model.create_table? as well.
|
222
|
-
|
223
|
-
* #sql_subscript is now an allowed method on most SQL expression
|
224
|
-
objects that Sequel generates. Also, arguments to #sql_subscript
|
225
|
-
can now be other expressions instead of just integers.
|
226
|
-
|
227
|
-
* Associations can now take a :cartesian_product_number option, which
|
228
|
-
can be used to tell Sequel whether to turn on duplicate object
|
229
|
-
detection when eagerly loading objects through eager_graph. This
|
230
|
-
number should be 0 if the association can never create multiple
|
231
|
-
rows for each row in the current table, 1 if it can create multiple
|
232
|
-
rows in the each row in the current table, and 2 if the association
|
233
|
-
itself causes a cartesian product.
|
234
|
-
|
235
|
-
* On MySQL, Dataset#insert_ignore now affects #insert as well as
|
236
|
-
multi_insert and import.
|
237
|
-
|
238
|
-
* Database#create_table now supports an :ignore_index_errors option,
|
239
|
-
and Database#add_index now supports an :ignore_errors option.
|
240
|
-
These are used by the schema_dumper when dumping an database
|
241
|
-
schema to be restored on another database type, since indexes
|
242
|
-
aren't usually required for proper operation and some indexes
|
243
|
-
can't be transferred.
|
244
|
-
|
245
|
-
* The ADO adapter now takes a :provider option, which can be used
|
246
|
-
to set the provider.
|
247
|
-
|
248
|
-
* The ADO adapter now takes a :command_timeout option, which tells
|
249
|
-
the connection how long to wait before giving up and raising an
|
250
|
-
exception.
|
251
|
-
|
252
|
-
* The Sequel.amalgalite adapter method was added. Like the
|
253
|
-
Sequel.sqlite method, you can call it with no arguments to get
|
254
|
-
an in memory database.
|
255
|
-
|
256
|
-
Other Improvements
|
257
|
-
------------------
|
258
|
-
|
259
|
-
* MySQL "commands out of sync" errors should no longer occur unless
|
260
|
-
you are nesting queries (calling Dataset#each inside Dataset#each).
|
261
|
-
A bug dating at least to 2007 and possibly since the initial
|
262
|
-
creation of the Sequel MySQL adapter was the cause. Before, SQL
|
263
|
-
that caused a result set that was sent using a method where Sequel
|
264
|
-
doesn't yield a result set would cause the "commands out of sync"
|
265
|
-
error on the following query. For example, the following code
|
266
|
-
would cause the error:
|
267
|
-
|
268
|
-
DB << "SHOW DATABASES"
|
269
|
-
|
270
|
-
If for some reason a "commands out of sync" error does occur,
|
271
|
-
Sequel will disconnect the connection from the connection pool,
|
272
|
-
so it won't continually stay in the pool and raise errors every
|
273
|
-
time it is used.
|
274
|
-
|
275
|
-
* The schema_dumper extension is much better about parsing defaults
|
276
|
-
from the database. It can now correctly parse most defaults on
|
277
|
-
MySQL, SQLite, and PostgreSQL databases. It no longer includes
|
278
|
-
defaults that it can't parse to a ruby object unless a database-
|
279
|
-
specific dump is requested.
|
280
|
-
|
281
|
-
* The schema_dumper extension now dumps tables in alphabetical order.
|
282
|
-
|
283
|
-
* Ordered and limited datasets are now handled correctly when using
|
284
|
-
union, intersect, and except. Also, union, intersect, and except
|
285
|
-
now always return a from_self dataset, so further limiting,
|
286
|
-
filtering, and ordering of them now works as expected.
|
287
|
-
|
288
|
-
* Dataset#graph now works correctly with a complex dataset without
|
289
|
-
having to use from_self. Before, code like the following didn't
|
290
|
-
do what was expected:
|
291
|
-
|
292
|
-
DB[:albums].
|
293
|
-
graph(DB[:artists].filter{name > 'M'}, :id=>:artist_id)
|
294
|
-
|
295
|
-
Before, the filter on DB[:artists] would be dropped. Now, Sequel
|
296
|
-
correctly uses a subselect.
|
297
|
-
|
298
|
-
* You can now specify serialization formats per column in the
|
299
|
-
serialization plugin, either by calling the plugin multiple
|
300
|
-
times or by using the new serialize_attributes method:
|
301
|
-
|
302
|
-
Album.plugin :serialization
|
303
|
-
Album.serialize_attributes :marshal, :review
|
304
|
-
Album.serialize_attributes :yaml, :name
|
305
|
-
Album.serialization_map #{:name=>:yaml, :review=>:marshal}
|
306
|
-
|
307
|
-
The public API for the serialization plugin is still backwards
|
308
|
-
compatible, but the internals have changed slightly to support
|
309
|
-
this new feature.
|
310
|
-
|
311
|
-
* You can now use eager_graph to eagerly load associations for models
|
312
|
-
that lack primary keys.
|
313
|
-
|
314
|
-
* The :eager_graph association option now works when lazily-loading
|
315
|
-
many_to_many associations.
|
316
|
-
|
317
|
-
* Dataset#add_graph_aliases now works correctly even if
|
318
|
-
set_graph_aliases hasn't been used.
|
319
|
-
|
320
|
-
* The PostgreSQL Database#tables method now assumes the public schema
|
321
|
-
if a schema is not given and there is no default_schema.
|
322
|
-
|
323
|
-
* The PostgreSQL Database#indexes method no longer returns partial
|
324
|
-
indexes or functional indexes.
|
325
|
-
|
326
|
-
* The MySQL Database#indexes method no longer returns indexes on
|
327
|
-
partial columns (prefix indexes).
|
328
|
-
|
329
|
-
* Default values for String :text=>true and File columns on MySQL
|
330
|
-
are ignored, since MySQL doesn't support them. They are not
|
331
|
-
ignored if you use text and blob, since then you are using the
|
332
|
-
database-specific syntax and Sequel doesn't do translation when
|
333
|
-
the database-specific syntax is used.
|
334
|
-
|
335
|
-
* On PostgreSQL, attempting the reset the primary key sequence for a
|
336
|
-
table without a primary key no longer causes an error.
|
337
|
-
|
338
|
-
* Using a placeholder string in an association's :condition option
|
339
|
-
now works correctly (e.g. :conditions=>['n = ?', 1])
|
340
|
-
|
341
|
-
* An error is no longer raised if you attempt to load a plugin that
|
342
|
-
has a DatasetMethods module but no public dataset methods.
|
343
|
-
|
344
|
-
* The check for dataset[n] where n is an integer was fixed. It now
|
345
|
-
raises an error inside of returning a limited dataset.
|
346
|
-
|
347
|
-
* On PostgreSQL, Dataset#insert with static SQL now works correctly.
|
348
|
-
|
349
|
-
* A reflection.rdoc file was added giving an overview of Sequel's
|
350
|
-
reflection support.
|
351
|
-
|
352
|
-
* The Migrator now works correctly with file names like
|
353
|
-
001_12312412_file_name.rb.
|
354
|
-
|
355
|
-
* The association code now requires the classes match when looking
|
356
|
-
for a reciprocal association.
|
357
|
-
|
358
|
-
* An unlikely threading bug (race condition) was possible when using
|
359
|
-
the validation_class_methods plugin. The plugin was refactored and
|
360
|
-
now uses a mutex to avoid the issue. One of the refactoring changes
|
361
|
-
makes it so that you can no longer use a class level vaildation
|
362
|
-
inside a Class.new block (since inherited isn't called until the
|
363
|
-
block finishes).
|
364
|
-
|
365
|
-
* The exception messages when Sequel.string_to_* fail have been fixed.
|
366
|
-
|
367
|
-
* The String :text=>true generic database type has been fixed when
|
368
|
-
using the Firebird adapter.
|
369
|
-
|
370
|
-
Backwards Compatibility
|
371
|
-
-----------------------
|
372
|
-
|
373
|
-
* A plugin's apply method is now only called the first time a plugin
|
374
|
-
is loaded. Plugins can now have a configure method that is called
|
375
|
-
every time the plugin is loaded, and is always called after the
|
376
|
-
instance methods, class methods, and dataset method submodules have
|
377
|
-
been added to the model. This is different from apply, which is
|
378
|
-
called before the submodules are loaded.
|
379
|
-
|
380
|
-
If you are a plugin author, please check your implementation to
|
381
|
-
make sure this doesn't cause problems for you. If you have
|
382
|
-
questions, please post on the Sequel mailing list.
|
383
|
-
|
384
|
-
This new plugin feature will make certain things a lot easier, and
|
385
|
-
it should be mostly backwards compatible. However, if a plugin
|
386
|
-
was previously expected to be loaded multiple times with the apply
|
387
|
-
method called each time, it will no longer work correctly.
|
388
|
-
|
389
|
-
* The plugin_opts methods defined now include multiple args in an
|
390
|
-
array if multiple args are given. Before, the plugin_opts methods
|
391
|
-
just returned the first argument.
|
392
|
-
|
393
|
-
* Database#table_exists? no longer checks the cached schema
|
394
|
-
information. By default, it will always do a database query
|
395
|
-
(unless overridden in an adapter). This shouldn't affect the
|
396
|
-
results, but if were using the method a lot and expecting it to
|
397
|
-
use cached information, it doesn't have the same performance
|
398
|
-
characteristics.
|
399
|
-
|
400
|
-
* The internal storage of the :select option for datasets have
|
401
|
-
changed. You can no longer use a hash as a way of aliasing
|
402
|
-
columns. Dataset#select now does the translation from the hash to
|
403
|
-
SQL::AliasedExpression instances. Basically, if you were using
|
404
|
-
Dataset#clone directly with a :select option with hashes for
|
405
|
-
aliasing, you should switch to using Dataset#select or changing
|
406
|
-
the hashes to AliasedExpressions yourself.
|