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
@@ -18,15 +18,15 @@ module Sequel
|
|
18
18
|
# the {"Schema Modification" guide}[rdoc-ref:doc/schema_modification.rdoc].
|
19
19
|
class CreateTableGenerator
|
20
20
|
# Classes specifying generic types that Sequel will convert to database-specific types.
|
21
|
-
GENERIC_TYPES=%w'String Integer
|
21
|
+
GENERIC_TYPES=%w'String Integer Float Numeric BigDecimal Date DateTime Time File TrueClass FalseClass'.freeze
|
22
22
|
|
23
|
-
#
|
23
|
+
# Column hashes created by this generator
|
24
24
|
attr_reader :columns
|
25
25
|
|
26
|
-
#
|
26
|
+
# Constraint hashes created by this generator
|
27
27
|
attr_reader :constraints
|
28
28
|
|
29
|
-
#
|
29
|
+
# Index hashes created by this generator
|
30
30
|
attr_reader :indexes
|
31
31
|
|
32
32
|
# Set the database in which to create the table, and evaluate the block
|
@@ -37,8 +37,7 @@ module Sequel
|
|
37
37
|
@indexes = []
|
38
38
|
@constraints = []
|
39
39
|
@primary_key = nil
|
40
|
-
|
41
|
-
@columns.unshift(@primary_key) if @primary_key && !has_column?(primary_key_name)
|
40
|
+
instance_exec(&block) if block
|
42
41
|
end
|
43
42
|
|
44
43
|
# Use custom Bignum method to use :Bignum instead of Bignum class, to work
|
@@ -47,34 +46,46 @@ module Sequel
|
|
47
46
|
column(name, :Bignum, opts)
|
48
47
|
end
|
49
48
|
|
49
|
+
# Use custom Fixnum method to use Integer instead of Fixnum class, to avoid
|
50
|
+
# warnings on ruby 2.4+.
|
51
|
+
def Fixnum(name, opts=OPTS)
|
52
|
+
column(name, Integer, opts)
|
53
|
+
end
|
54
|
+
|
50
55
|
# Add a method for each of the given types that creates a column
|
51
56
|
# with that type as a constant. Types given should either already
|
52
57
|
# be constants/classes or a capitalized string/symbol with the same name
|
53
58
|
# as a constant/class.
|
54
|
-
#
|
55
|
-
# Do not call this method with untrusted input, as that can result in
|
56
|
-
# arbitrary code execution.
|
57
59
|
def self.add_type_method(*types)
|
58
60
|
types.each do |type|
|
59
|
-
|
61
|
+
case type
|
62
|
+
when Symbol, String
|
63
|
+
method = type
|
64
|
+
type = Object.const_get(type)
|
65
|
+
else
|
66
|
+
method = type.to_s
|
67
|
+
end
|
68
|
+
|
69
|
+
define_method(method){|name, opts=OPTS| column(name, type, opts)}
|
60
70
|
end
|
71
|
+
nil
|
61
72
|
end
|
62
73
|
|
63
|
-
# Add an unnamed constraint
|
74
|
+
# Add an unnamed constraint, specified by the given block
|
64
75
|
# or args:
|
65
76
|
#
|
66
|
-
# check(:
|
67
|
-
# check{num > 5}
|
77
|
+
# check(num: 1..5) # CHECK num >= 1 AND num <= 5
|
78
|
+
# check{num > 5} # CHECK num > 5
|
68
79
|
def check(*args, &block)
|
69
80
|
constraint(nil, *args, &block)
|
70
81
|
end
|
71
82
|
|
72
|
-
# Add a column with the given name, type, and opts
|
83
|
+
# Add a column with the given name, type, and opts:
|
73
84
|
#
|
74
85
|
# column :num, :integer
|
75
86
|
# # num INTEGER
|
76
87
|
#
|
77
|
-
# column :name, String, :
|
88
|
+
# column :name, String, null: false, default: 'a'
|
78
89
|
# # name varchar(255) NOT NULL DEFAULT 'a'
|
79
90
|
#
|
80
91
|
# inet :ip
|
@@ -98,6 +109,9 @@ module Sequel
|
|
98
109
|
# yet exist on referenced table (but will exist before the transaction commits).
|
99
110
|
# Basically it adds DEFERRABLE INITIALLY DEFERRED on key creation.
|
100
111
|
# If you use :immediate as the value, uses DEFERRABLE INITIALLY IMMEDIATE.
|
112
|
+
# :generated_always_as :: Specify a GENERATED ALWAYS AS column expression,
|
113
|
+
# if generated columns are supported (PostgreSQL 12+, MariaDB 5.2.0+,
|
114
|
+
# and MySQL 5.7.6+).
|
101
115
|
# :index :: Create an index on this column. If given a hash, use the hash as the
|
102
116
|
# options for the index.
|
103
117
|
# :key :: For foreign key columns, the column in the associated table
|
@@ -105,47 +119,79 @@ module Sequel
|
|
105
119
|
# references the primary key of the associated table, except if you are
|
106
120
|
# using MySQL.
|
107
121
|
# :null :: Mark the column as allowing NULL values (if true),
|
108
|
-
# or not allowing NULL values (if false).
|
109
|
-
# to whatever the database default is.
|
122
|
+
# or not allowing NULL values (if false). The default is to allow NULL values.
|
110
123
|
# :on_delete :: Specify the behavior of this column when being deleted
|
111
124
|
# (:restrict, :cascade, :set_null, :set_default, :no_action).
|
112
125
|
# :on_update :: Specify the behavior of this column when being updated
|
113
126
|
# (:restrict, :cascade, :set_null, :set_default, :no_action).
|
114
|
-
# :primary_key :: Make the column as a single primary key column. This should
|
115
|
-
# be used if you
|
127
|
+
# :primary_key :: Make the column as a single primary key column. This should not
|
128
|
+
# be used if you want a single autoincrementing primary key column
|
129
|
+
# (use the primary_key method in that case).
|
116
130
|
# :primary_key_constraint_name :: The name to give the primary key constraint
|
131
|
+
# :primary_key_deferrable :: Similar to :deferrable, but for the primary key constraint
|
132
|
+
# if :primary_key is used.
|
117
133
|
# :type :: Overrides the type given as the argument. Generally not used by column
|
118
134
|
# itself, but can be passed as an option to other methods that call column.
|
119
135
|
# :unique :: Mark the column as unique, generally has the same effect as
|
120
136
|
# creating a unique index on the column.
|
121
137
|
# :unique_constraint_name :: The name to give the unique key constraint
|
138
|
+
# :unique_deferrable :: Similar to :deferrable, but for the unique constraint if :unique
|
139
|
+
# is used.
|
140
|
+
#
|
141
|
+
# PostgreSQL specific options:
|
142
|
+
#
|
143
|
+
# :identity :: Create an identity column.
|
144
|
+
#
|
145
|
+
# MySQL specific options:
|
146
|
+
#
|
147
|
+
# :generated_type :: Set the type of column when using :generated_always_as,
|
148
|
+
# should be :virtual or :stored to force a type.
|
149
|
+
# :on_update_current_timestamp :: Use ON UPDATE CURRENT TIMESTAMP when defining the column,
|
150
|
+
# which will update the column value to CURRENT_TIMESTAMP
|
151
|
+
# on every UPDATE.
|
152
|
+
#
|
153
|
+
# Microsoft SQL Server specific options:
|
154
|
+
#
|
155
|
+
# :clustered :: When using :primary_key or :unique, marks the primary key or unique
|
156
|
+
# constraint as CLUSTERED (if true), or NONCLUSTERED (if false).
|
122
157
|
def column(name, type, opts = OPTS)
|
123
158
|
columns << {:name => name, :type => type}.merge!(opts)
|
124
159
|
if index_opts = opts[:index]
|
125
|
-
index(name, index_opts.is_a?(Hash) ? index_opts :
|
160
|
+
index(name, index_opts.is_a?(Hash) ? index_opts : OPTS)
|
126
161
|
end
|
162
|
+
nil
|
127
163
|
end
|
128
164
|
|
129
|
-
# Adds a named constraint (or unnamed if name is nil)
|
165
|
+
# Adds a named CHECK constraint (or unnamed if name is nil),
|
130
166
|
# with the given block or args. To provide options for the constraint, pass
|
131
167
|
# a hash as the first argument.
|
132
168
|
#
|
133
|
-
# constraint(:blah, :
|
169
|
+
# constraint(:blah, num: 1..5)
|
134
170
|
# # CONSTRAINT blah CHECK num >= 1 AND num <= 5
|
135
|
-
# constraint({:
|
171
|
+
# constraint({name: :blah, deferrable: true}, num: 1..5)
|
136
172
|
# # CONSTRAINT blah CHECK num >= 1 AND num <= 5 DEFERRABLE INITIALLY DEFERRED
|
173
|
+
#
|
174
|
+
# If the first argument is a hash, the following options are supported:
|
175
|
+
#
|
176
|
+
# Options:
|
177
|
+
# :name :: The name of the CHECK constraint
|
178
|
+
# :deferrable :: Whether the CHECK constraint should be marked DEFERRABLE.
|
179
|
+
#
|
180
|
+
# PostgreSQL specific options:
|
181
|
+
# :not_valid :: Whether the CHECK constraint should be marked NOT VALID.
|
137
182
|
def constraint(name, *args, &block)
|
138
183
|
opts = name.is_a?(Hash) ? name : {:name=>name}
|
139
184
|
constraints << opts.merge(:type=>:check, :check=>block || args)
|
185
|
+
nil
|
140
186
|
end
|
141
187
|
|
142
|
-
# Add a foreign key in the table that references another table
|
188
|
+
# Add a foreign key in the table that references another table. See #column
|
143
189
|
# for available options.
|
144
190
|
#
|
145
191
|
# foreign_key(:artist_id) # artist_id INTEGER
|
146
192
|
# foreign_key(:artist_id, :artists) # artist_id INTEGER REFERENCES artists
|
147
|
-
# foreign_key(:artist_id, :artists, :
|
148
|
-
# foreign_key(:artist_id, :artists, :
|
193
|
+
# foreign_key(:artist_id, :artists, key: :id) # artist_id INTEGER REFERENCES artists(id)
|
194
|
+
# foreign_key(:artist_id, :artists, type: String) # artist_id varchar(255) REFERENCES artists(id)
|
149
195
|
#
|
150
196
|
# Additional Options:
|
151
197
|
#
|
@@ -155,7 +201,7 @@ module Sequel
|
|
155
201
|
# composite foreign key), you can provide an array of columns as the first argument, and
|
156
202
|
# you can provide the :name option to name the constraint:
|
157
203
|
#
|
158
|
-
# foreign_key([:artist_name, :artist_location], :artists, :
|
204
|
+
# foreign_key([:artist_name, :artist_location], :artists, name: :artist_fk)
|
159
205
|
# # ADD CONSTRAINT artist_fk FOREIGN KEY (artist_name, artist_location) REFERENCES artists
|
160
206
|
def foreign_key(name, table=nil, opts = OPTS)
|
161
207
|
opts = case table
|
@@ -170,55 +216,66 @@ module Sequel
|
|
170
216
|
column(name, Integer, opts)
|
171
217
|
end
|
172
218
|
|
173
|
-
# Add a full text index on the given columns
|
219
|
+
# Add a full text index on the given columns.
|
220
|
+
# See #index for additional options.
|
174
221
|
#
|
175
222
|
# PostgreSQL specific options:
|
176
223
|
# :index_type :: Can be set to :gist to use a GIST index instead of the
|
177
224
|
# default GIN index.
|
178
225
|
# :language :: Set a language to use for the index (default: simple).
|
179
|
-
#
|
180
|
-
# Microsoft SQL Server specific options:
|
181
|
-
# :key_index :: The KEY INDEX to use for the full text index.
|
182
226
|
def full_text_index(columns, opts = OPTS)
|
183
227
|
index(columns, opts.merge(:type => :full_text))
|
184
228
|
end
|
185
229
|
|
186
|
-
# True if the
|
230
|
+
# True if the generator includes the creation of a column with the given name.
|
187
231
|
def has_column?(name)
|
188
232
|
columns.any?{|c| c[:name] == name}
|
189
233
|
end
|
190
234
|
|
191
|
-
# Add an index on the given column(s) with the given options
|
235
|
+
# Add an index on the given column(s) with the given options. Examples:
|
236
|
+
#
|
237
|
+
# index :name
|
238
|
+
# # CREATE INDEX table_name_index ON table (name)
|
239
|
+
#
|
240
|
+
# index [:artist_id, :name]
|
241
|
+
# # CREATE INDEX table_artist_id_name_index ON table (artist_id, name)
|
242
|
+
#
|
243
|
+
# index [:artist_id, :name], name: :foo
|
244
|
+
# # CREATE INDEX foo ON table (artist_id, name)
|
245
|
+
#
|
192
246
|
# General options:
|
193
247
|
#
|
248
|
+
# :include :: Include additional column values in the index, without
|
249
|
+
# actually indexing on those values (only supported by
|
250
|
+
# some databases).
|
194
251
|
# :name :: The name to use for the index. If not given, a default name
|
195
252
|
# based on the table and columns is used.
|
196
|
-
# :type :: The type of index to use (only supported by some databases
|
253
|
+
# :type :: The type of index to use (only supported by some databases,
|
254
|
+
# :full_text and :spatial values are handled specially).
|
197
255
|
# :unique :: Make the index unique, so duplicate values are not allowed.
|
198
|
-
# :where ::
|
256
|
+
# :where :: A filter expression, used to create a partial index (only
|
257
|
+
# supported by some databases).
|
199
258
|
#
|
200
259
|
# PostgreSQL specific options:
|
201
260
|
#
|
202
261
|
# :concurrently :: Create the index concurrently, so it doesn't block
|
203
262
|
# operations on the table while the index is being
|
204
263
|
# built.
|
205
|
-
# :
|
264
|
+
# :if_not_exists :: Only create the index if an index of the same name doesn't already exist.
|
265
|
+
# :nulls_distinct :: Set whether separate NULLs should be considered distinct values in unique indexes.
|
266
|
+
# :opclass :: Set an opclass to use for all columns (per-column opclasses require
|
267
|
+
# custom SQL).
|
268
|
+
# :tablespace :: Specify tablespace for index.
|
206
269
|
#
|
207
270
|
# Microsoft SQL Server specific options:
|
208
271
|
#
|
209
|
-
# :
|
210
|
-
# actually indexing on those values.
|
211
|
-
#
|
212
|
-
# index :name
|
213
|
-
# # CREATE INDEX table_name_index ON table (name)
|
214
|
-
#
|
215
|
-
# index [:artist_id, :name]
|
216
|
-
# # CREATE INDEX table_artist_id_name_index ON table (artist_id, name)
|
272
|
+
# :key_index :: Sets the KEY INDEX to the given value.
|
217
273
|
def index(columns, opts = OPTS)
|
218
274
|
indexes << {:columns => Array(columns)}.merge!(opts)
|
275
|
+
nil
|
219
276
|
end
|
220
277
|
|
221
|
-
# Add a column with the given type, name, and opts
|
278
|
+
# Add a column with the given type, name, and opts. See #column for available
|
222
279
|
# options.
|
223
280
|
def method_missing(type, name = nil, opts = OPTS)
|
224
281
|
name ? column(name, type, opts) : super
|
@@ -229,7 +286,7 @@ module Sequel
|
|
229
286
|
true
|
230
287
|
end
|
231
288
|
|
232
|
-
# Adds an autoincrementing primary key column or a primary key constraint
|
289
|
+
# Adds an autoincrementing primary key column or a primary key constraint.
|
233
290
|
# To just create a constraint, the first argument should be an array of column symbols
|
234
291
|
# specifying the primary key columns. To create an autoincrementing primary key
|
235
292
|
# column, a single symbol can be used. In both cases, an options hash can be used
|
@@ -237,7 +294,7 @@ module Sequel
|
|
237
294
|
#
|
238
295
|
# If you want to create a primary key column that is not autoincrementing, you
|
239
296
|
# should not use this method. Instead, you should use the regular +column+ method
|
240
|
-
# with a <tt
|
297
|
+
# with a <tt>primary_key: true</tt> option.
|
241
298
|
#
|
242
299
|
# If an array of column symbols is used, you can specify the :name option
|
243
300
|
# to name the constraint.
|
@@ -249,9 +306,8 @@ module Sequel
|
|
249
306
|
#
|
250
307
|
# Examples:
|
251
308
|
# primary_key(:id)
|
252
|
-
# primary_key(:id,
|
253
|
-
# primary_key(:
|
254
|
-
# primary_key([:street_number, :house_number], :name=>:some constraint_name)
|
309
|
+
# primary_key(:id, type: :Bignum, keep_order: true)
|
310
|
+
# primary_key([:street_number, :house_number], name: :some constraint_name)
|
255
311
|
def primary_key(name, *args)
|
256
312
|
return composite_primary_key(name, *args) if name.is_a?(Array)
|
257
313
|
column = @db.serial_primary_key_options.merge({:name => name})
|
@@ -270,6 +326,7 @@ module Sequel
|
|
270
326
|
else
|
271
327
|
columns.unshift(column)
|
272
328
|
end
|
329
|
+
nil
|
273
330
|
end
|
274
331
|
|
275
332
|
# The name of the primary key for this generator, if it has a primary key.
|
@@ -277,12 +334,13 @@ module Sequel
|
|
277
334
|
@primary_key[:name] if @primary_key
|
278
335
|
end
|
279
336
|
|
280
|
-
# Add a spatial index on the given columns
|
337
|
+
# Add a spatial index on the given columns.
|
338
|
+
# See #index for additional options.
|
281
339
|
def spatial_index(columns, opts = OPTS)
|
282
340
|
index(columns, opts.merge(:type => :spatial))
|
283
341
|
end
|
284
342
|
|
285
|
-
# Add a unique constraint on the given columns
|
343
|
+
# Add a unique constraint on the given columns.
|
286
344
|
#
|
287
345
|
# unique(:name) # UNIQUE (name)
|
288
346
|
#
|
@@ -290,27 +348,27 @@ module Sequel
|
|
290
348
|
# to name the constraint.
|
291
349
|
def unique(columns, opts = OPTS)
|
292
350
|
constraints << {:type => :unique, :columns => Array(columns)}.merge!(opts)
|
351
|
+
nil
|
293
352
|
end
|
294
353
|
|
295
354
|
private
|
296
355
|
|
297
356
|
# Add a composite primary key constraint
|
298
357
|
def composite_primary_key(columns, *args)
|
299
|
-
opts = args.pop ||
|
358
|
+
opts = args.pop || OPTS
|
300
359
|
constraints << {:type => :primary_key, :columns => columns}.merge!(opts)
|
360
|
+
nil
|
301
361
|
end
|
302
362
|
|
303
363
|
# Add a composite foreign key constraint
|
304
364
|
def composite_foreign_key(columns, opts)
|
305
365
|
constraints << {:type => :foreign_key, :columns => columns}.merge!(opts)
|
366
|
+
nil
|
306
367
|
end
|
307
368
|
|
308
369
|
add_type_method(*GENERIC_TYPES)
|
309
370
|
end
|
310
371
|
|
311
|
-
# Alias of CreateTableGenerator for backwards compatibility.
|
312
|
-
Generator = CreateTableGenerator
|
313
|
-
|
314
372
|
# Schema::AlterTableGenerator is an internal class that the user is not expected
|
315
373
|
# to instantiate directly. Instances are created by Database#alter_table.
|
316
374
|
# It is used to specify table alteration parameters. It takes a Database
|
@@ -321,49 +379,64 @@ module Sequel
|
|
321
379
|
# For more information on Sequel's support for schema modification, see
|
322
380
|
# the {"Schema Modification" guide}[link:files/doc/schema_modification_rdoc.html].
|
323
381
|
class AlterTableGenerator
|
324
|
-
# An array of
|
382
|
+
# An array of operations to perform
|
325
383
|
attr_reader :operations
|
326
384
|
|
327
|
-
# Set the Database object to which to apply the
|
385
|
+
# Set the Database object to which to apply the changes, and evaluate the
|
328
386
|
# block in the context of this object.
|
329
387
|
def initialize(db, &block)
|
330
388
|
@db = db
|
331
389
|
@operations = []
|
332
|
-
|
390
|
+
instance_exec(&block) if block
|
333
391
|
end
|
334
392
|
|
335
|
-
# Add a column with the given name, type, and opts
|
393
|
+
# Add a column with the given name, type, and opts.
|
336
394
|
# See CreateTableGenerator#column for the available options.
|
337
395
|
#
|
338
396
|
# add_column(:name, String) # ADD COLUMN name varchar(255)
|
397
|
+
#
|
398
|
+
# PostgreSQL specific options:
|
399
|
+
#
|
400
|
+
# :if_not_exists :: Set to true to not add the column if it already exists (PostgreSQL 9.6+)
|
401
|
+
#
|
402
|
+
# MySQL specific options:
|
403
|
+
#
|
404
|
+
# :after :: The name of an existing column that the new column should be positioned after
|
405
|
+
# :first :: Create this new column before all other existing columns
|
339
406
|
def add_column(name, type, opts = OPTS)
|
340
|
-
|
407
|
+
op = {:op => :add_column, :name => name, :type => type}.merge!(opts)
|
408
|
+
index_opts = op.delete(:index)
|
409
|
+
@operations << op
|
410
|
+
add_index(name, index_opts.is_a?(Hash) ? index_opts : OPTS) if index_opts
|
411
|
+
nil
|
341
412
|
end
|
342
413
|
|
343
|
-
# Add a constraint with the given name and args
|
414
|
+
# Add a constraint with the given name and args.
|
344
415
|
# See CreateTableGenerator#constraint.
|
345
416
|
#
|
346
417
|
# add_constraint(:valid_name, Sequel.like(:name, 'A%'))
|
347
418
|
# # ADD CONSTRAINT valid_name CHECK (name LIKE 'A%' ESCAPE '\')
|
348
|
-
# add_constraint({:
|
419
|
+
# add_constraint({name: :valid_name, deferrable: true}, Sequel.like(:name, 'A%'))
|
349
420
|
# # ADD CONSTRAINT valid_name CHECK (name LIKE 'A%' ESCAPE '\') DEFERRABLE INITIALLY DEFERRED
|
350
421
|
def add_constraint(name, *args, &block)
|
351
422
|
opts = name.is_a?(Hash) ? name : {:name=>name}
|
352
423
|
@operations << opts.merge(:op=>:add_constraint, :type=>:check, :check=>block || args)
|
424
|
+
nil
|
353
425
|
end
|
354
426
|
|
355
427
|
# Add a unique constraint to the given column(s)
|
356
428
|
#
|
357
429
|
# add_unique_constraint(:name) # ADD UNIQUE (name)
|
358
|
-
# add_unique_constraint(:name, :
|
430
|
+
# add_unique_constraint(:name, name: :unique_name) # ADD CONSTRAINT unique_name UNIQUE (name)
|
359
431
|
#
|
360
432
|
# Supports the same :deferrable option as CreateTableGenerator#column.
|
361
433
|
def add_unique_constraint(columns, opts = OPTS)
|
362
434
|
@operations << {:op => :add_constraint, :type => :unique, :columns => Array(columns)}.merge!(opts)
|
435
|
+
nil
|
363
436
|
end
|
364
437
|
|
365
|
-
# Add a foreign key with the given name and referencing the given table
|
366
|
-
#
|
438
|
+
# Add a foreign key with the given name and referencing the given table.
|
439
|
+
# See CreateTableGenerator#column for the available options.
|
367
440
|
#
|
368
441
|
# You can also pass an array of column names for creating composite foreign
|
369
442
|
# keys. In this case, it will assume the columns exist and will only add
|
@@ -389,21 +462,22 @@ module Sequel
|
|
389
462
|
add_column(name, Integer, {:table=>table}.merge!(opts))
|
390
463
|
end
|
391
464
|
|
392
|
-
# Add a full text index on the given columns
|
393
|
-
# See CreateTableGenerator#
|
465
|
+
# Add a full text index on the given columns.
|
466
|
+
# See CreateTableGenerator#full_text_index for available options.
|
394
467
|
def add_full_text_index(columns, opts = OPTS)
|
395
468
|
add_index(columns, {:type=>:full_text}.merge!(opts))
|
396
469
|
end
|
397
470
|
|
398
|
-
# Add an index on the given columns
|
471
|
+
# Add an index on the given columns. See
|
399
472
|
# CreateTableGenerator#index for available options.
|
400
473
|
#
|
401
474
|
# add_index(:artist_id) # CREATE INDEX table_artist_id_index ON table (artist_id)
|
402
475
|
def add_index(columns, opts = OPTS)
|
403
476
|
@operations << {:op => :add_index, :columns => Array(columns)}.merge!(opts)
|
477
|
+
nil
|
404
478
|
end
|
405
479
|
|
406
|
-
# Add a primary key
|
480
|
+
# Add a primary key. See CreateTableGenerator#column
|
407
481
|
# for the available options. Like +add_foreign_key+, if you specify
|
408
482
|
# the column name as an array, it just creates a constraint:
|
409
483
|
#
|
@@ -415,16 +489,16 @@ module Sequel
|
|
415
489
|
add_column(name, opts.delete(:type), opts)
|
416
490
|
end
|
417
491
|
|
418
|
-
# Add a spatial index on the given columns
|
492
|
+
# Add a spatial index on the given columns.
|
419
493
|
# See CreateTableGenerator#index for available options.
|
420
494
|
def add_spatial_index(columns, opts = OPTS)
|
421
495
|
add_index(columns, {:type=>:spatial}.merge!(opts))
|
422
496
|
end
|
423
497
|
|
424
|
-
# Remove a column from the
|
498
|
+
# Remove a column from the table.
|
425
499
|
#
|
426
500
|
# drop_column(:artist_id) # DROP COLUMN artist_id
|
427
|
-
# drop_column(:artist_id, :
|
501
|
+
# drop_column(:artist_id, cascade: true) # DROP COLUMN artist_id CASCADE
|
428
502
|
#
|
429
503
|
# Options:
|
430
504
|
#
|
@@ -436,20 +510,24 @@ module Sequel
|
|
436
510
|
# exist.
|
437
511
|
def drop_column(name, opts=OPTS)
|
438
512
|
@operations << {:op => :drop_column, :name => name}.merge!(opts)
|
513
|
+
nil
|
439
514
|
end
|
440
515
|
|
441
|
-
# Remove a constraint from the
|
516
|
+
# Remove a constraint from the table:
|
517
|
+
#
|
518
|
+
# drop_constraint(:unique_name) # DROP CONSTRAINT unique_name
|
519
|
+
# drop_constraint(:unique_name, cascade: true) # DROP CONSTRAINT unique_name CASCADE
|
520
|
+
#
|
521
|
+
# MySQL/SQLite specific options:
|
442
522
|
#
|
443
523
|
# :type :: Set the type of constraint to drop, either :primary_key, :foreign_key,
|
444
524
|
# or :unique.
|
445
|
-
#
|
446
|
-
# drop_constraint(:unique_name) # DROP CONSTRAINT unique_name
|
447
|
-
# drop_constraint(:unique_name, :cascade=>true) # DROP CONSTRAINT unique_name CASCADE
|
448
525
|
def drop_constraint(name, opts=OPTS)
|
449
526
|
@operations << {:op => :drop_constraint, :name => name}.merge!(opts)
|
527
|
+
nil
|
450
528
|
end
|
451
529
|
|
452
|
-
# Remove a foreign key and the associated column from the
|
530
|
+
# Remove a foreign key and the associated column from the table. General options:
|
453
531
|
#
|
454
532
|
# :name :: The name of the constraint to drop. If not given, uses the same name
|
455
533
|
# that would be used by add_foreign_key with the same columns.
|
@@ -460,11 +538,15 @@ module Sequel
|
|
460
538
|
# drop_foreign_key(:artist_id) # DROP CONSTRAINT table_artist_id_fkey, DROP COLUMN artist_id
|
461
539
|
# drop_foreign_key([:name]) # DROP CONSTRAINT table_name_fkey
|
462
540
|
def drop_foreign_key(name, opts=OPTS)
|
541
|
+
if !name.is_a?(Array) && opts[:foreign_key_constraint_name]
|
542
|
+
opts = Hash[opts]
|
543
|
+
opts[:name] = opts[:foreign_key_constraint_name]
|
544
|
+
end
|
463
545
|
drop_composite_foreign_key(Array(name), opts)
|
464
546
|
drop_column(name) unless name.is_a?(Array)
|
465
547
|
end
|
466
548
|
|
467
|
-
# Remove an index from the
|
549
|
+
# Remove an index from the table. General options:
|
468
550
|
#
|
469
551
|
# :name :: The name of the index to drop. If not given, uses the same name
|
470
552
|
# that would be used by add_index with the same columns.
|
@@ -478,29 +560,36 @@ module Sequel
|
|
478
560
|
#
|
479
561
|
# drop_index(:artist_id) # DROP INDEX table_artist_id_index
|
480
562
|
# drop_index([:a, :b]) # DROP INDEX table_a_b_index
|
481
|
-
# drop_index([:a, :b], :
|
563
|
+
# drop_index([:a, :b], name: :foo) # DROP INDEX foo
|
482
564
|
def drop_index(columns, options=OPTS)
|
483
565
|
@operations << {:op => :drop_index, :columns => Array(columns)}.merge!(options)
|
566
|
+
nil
|
484
567
|
end
|
485
568
|
|
486
|
-
#
|
569
|
+
# Rename one of the table's columns.
|
487
570
|
#
|
488
571
|
# rename_column(:name, :artist_name) # RENAME COLUMN name TO artist_name
|
489
572
|
def rename_column(name, new_name, opts = OPTS)
|
490
573
|
@operations << {:op => :rename_column, :name => name, :new_name => new_name}.merge!(opts)
|
574
|
+
nil
|
491
575
|
end
|
492
576
|
|
493
|
-
# Modify
|
577
|
+
# Modify the default value for one of the table's column.
|
494
578
|
#
|
495
579
|
# set_column_default(:artist_name, 'a') # ALTER COLUMN artist_name SET DEFAULT 'a'
|
496
580
|
#
|
581
|
+
# To remove an existing default value, use +nil+ as the value:
|
582
|
+
#
|
583
|
+
# set_column_default(:artist_name, nil) # ALTER COLUMN artist_name SET DEFAULT NULL
|
584
|
+
#
|
497
585
|
# On MySQL, make sure to use a symbol for the name of the column, as otherwise you
|
498
586
|
# can lose the type and NULL/NOT NULL setting for the column.
|
499
587
|
def set_column_default(name, default)
|
500
588
|
@operations << {:op => :set_column_default, :name => name, :default => default}
|
589
|
+
nil
|
501
590
|
end
|
502
591
|
|
503
|
-
# Modify
|
592
|
+
# Modify the type of one of the table's column.
|
504
593
|
#
|
505
594
|
# set_column_type(:artist_name, 'char(10)') # ALTER COLUMN artist_name TYPE char(10)
|
506
595
|
#
|
@@ -512,6 +601,7 @@ module Sequel
|
|
512
601
|
# can lose the default and NULL/NOT NULL setting for the column.
|
513
602
|
def set_column_type(name, type, opts=OPTS)
|
514
603
|
@operations << {:op => :set_column_type, :name => name, :type => type}.merge!(opts)
|
604
|
+
nil
|
515
605
|
end
|
516
606
|
|
517
607
|
# Set a given column as allowing NULL values.
|
@@ -522,6 +612,7 @@ module Sequel
|
|
522
612
|
# can lose the default and type for the column.
|
523
613
|
def set_column_allow_null(name, allow_null=true)
|
524
614
|
@operations << {:op => :set_column_null, :name => name, :null => allow_null}
|
615
|
+
nil
|
525
616
|
end
|
526
617
|
|
527
618
|
# Set a given column as not allowing NULL values.
|
@@ -539,16 +630,19 @@ module Sequel
|
|
539
630
|
# Add a composite primary key constraint
|
540
631
|
def add_composite_primary_key(columns, opts)
|
541
632
|
@operations << {:op => :add_constraint, :type => :primary_key, :columns => columns}.merge!(opts)
|
633
|
+
nil
|
542
634
|
end
|
543
635
|
|
544
636
|
# Add a composite foreign key constraint
|
545
637
|
def add_composite_foreign_key(columns, table, opts)
|
546
638
|
@operations << {:op => :add_constraint, :type => :foreign_key, :columns => columns, :table => table}.merge!(opts)
|
639
|
+
nil
|
547
640
|
end
|
548
641
|
|
549
642
|
# Drop a composite foreign key constraint
|
550
643
|
def drop_composite_foreign_key(columns, opts)
|
551
|
-
@operations <<
|
644
|
+
@operations << opts.merge(:op => :drop_constraint, :type => :foreign_key, :columns => columns)
|
645
|
+
nil
|
552
646
|
end
|
553
647
|
end
|
554
648
|
end
|