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
@@ -8,24 +8,13 @@ module Sequel
|
|
8
8
|
# ---------------------
|
9
9
|
|
10
10
|
# Array of supported database adapters
|
11
|
-
ADAPTERS = %w'ado amalgalite
|
12
|
-
|
13
|
-
@single_threaded = false
|
14
|
-
|
15
|
-
class << self
|
16
|
-
# Whether to use the single threaded connection pool by default
|
17
|
-
attr_accessor :single_threaded
|
18
|
-
end
|
11
|
+
ADAPTERS = %w'ado amalgalite ibmdb jdbc mock mysql mysql2 odbc oracle postgres sqlanywhere sqlite tinytds'.map(&:to_sym)
|
19
12
|
|
20
13
|
# The Database subclass for the given adapter scheme.
|
21
14
|
# Raises Sequel::AdapterNotFound if the adapter
|
22
15
|
# could not be loaded.
|
23
16
|
def self.adapter_class(scheme)
|
24
|
-
|
25
|
-
|
26
|
-
scheme = scheme.to_s.gsub('-', '_').to_sym
|
27
|
-
|
28
|
-
load_adapter(scheme)
|
17
|
+
scheme.is_a?(Class) ? scheme : load_adapter(scheme.to_sym)
|
29
18
|
end
|
30
19
|
|
31
20
|
# Returns the scheme symbol for the Database class.
|
@@ -37,8 +26,8 @@ module Sequel
|
|
37
26
|
def self.connect(conn_string, opts = OPTS)
|
38
27
|
case conn_string
|
39
28
|
when String
|
40
|
-
if
|
41
|
-
c = adapter_class(
|
29
|
+
if conn_string.start_with?('jdbc:')
|
30
|
+
c = adapter_class(:jdbc)
|
42
31
|
opts = opts.merge(:orig_opts=>opts.dup)
|
43
32
|
opts = {:uri=>conn_string}.merge!(opts)
|
44
33
|
else
|
@@ -46,8 +35,8 @@ module Sequel
|
|
46
35
|
scheme = uri.scheme
|
47
36
|
c = adapter_class(scheme)
|
48
37
|
uri_options = c.send(:uri_to_options, uri)
|
49
|
-
uri.query.split('&').
|
50
|
-
uri_options.to_a.each{|k,v| uri_options[k] =
|
38
|
+
uri.query.split('&').map{|s| s.split('=')}.each{|k,v| uri_options[k.to_sym] = v if k && !k.empty?} unless uri.query.to_s.strip.empty?
|
39
|
+
uri_options.to_a.each{|k,v| uri_options[k] = URI::DEFAULT_PARSER.unescape(v) if v.is_a?(String)}
|
51
40
|
opts = uri_options.merge(opts).merge!(:orig_opts=>opts.dup, :uri=>conn_string, :adapter=>scheme)
|
52
41
|
end
|
53
42
|
when Hash
|
@@ -57,20 +46,20 @@ module Sequel
|
|
57
46
|
else
|
58
47
|
raise Error, "Sequel::Database.connect takes either a Hash or a String, given: #{conn_string.inspect}"
|
59
48
|
end
|
60
|
-
|
49
|
+
|
61
50
|
opts = opts.inject({}) do |m, (k,v)|
|
62
51
|
k = :user if k.to_s == 'username'
|
63
52
|
m[k.to_sym] = v
|
64
53
|
m
|
65
54
|
end
|
55
|
+
|
66
56
|
begin
|
67
57
|
db = c.new(opts)
|
68
|
-
|
69
|
-
if block_given?
|
58
|
+
if defined?(yield)
|
70
59
|
return yield(db)
|
71
60
|
end
|
72
61
|
ensure
|
73
|
-
if
|
62
|
+
if defined?(yield)
|
74
63
|
db.disconnect if db
|
75
64
|
Sequel.synchronize{::Sequel::DATABASES.delete(db)}
|
76
65
|
end
|
@@ -129,6 +118,34 @@ module Sequel
|
|
129
118
|
Sequel.synchronize{ADAPTER_MAP[scheme] = self}
|
130
119
|
end
|
131
120
|
private_class_method :set_adapter_scheme
|
121
|
+
|
122
|
+
# Sets the given module as the shared adapter module for the given scheme.
|
123
|
+
# Used to register shared adapters for use by the mock adapter. Example:
|
124
|
+
#
|
125
|
+
# # in file sequel/adapters/shared/mydb.rb
|
126
|
+
# module Sequel::MyDB
|
127
|
+
# Sequel::Database.set_shared_adapter_scheme :mydb, self
|
128
|
+
#
|
129
|
+
# def self.mock_adapter_setup(db)
|
130
|
+
# # ...
|
131
|
+
# end
|
132
|
+
#
|
133
|
+
# module DatabaseMethods
|
134
|
+
# # ...
|
135
|
+
# end
|
136
|
+
#
|
137
|
+
# module DatasetMethods
|
138
|
+
# # ...
|
139
|
+
# end
|
140
|
+
# end
|
141
|
+
#
|
142
|
+
# would allow the mock adapter to return a Database instance that supports
|
143
|
+
# the MyDB syntax via:
|
144
|
+
#
|
145
|
+
# Sequel.connect('mock://mydb')
|
146
|
+
def self.set_shared_adapter_scheme(scheme, mod)
|
147
|
+
Sequel.synchronize{SHARED_ADAPTER_MAP[scheme] = mod}
|
148
|
+
end
|
132
149
|
|
133
150
|
# The connection pool for this Database instance. All Database instances have
|
134
151
|
# their own connection pools.
|
@@ -139,25 +156,28 @@ module Sequel
|
|
139
156
|
# +database_type+ (for native adapters), in others (i.e. adapters with
|
140
157
|
# subadapters), it will be different.
|
141
158
|
#
|
142
|
-
# Sequel.connect('jdbc:postgres://...').adapter_scheme
|
159
|
+
# Sequel.connect('jdbc:postgres://...').adapter_scheme
|
160
|
+
# # => :jdbc
|
143
161
|
def adapter_scheme
|
144
162
|
self.class.adapter_scheme
|
145
163
|
end
|
146
164
|
|
147
165
|
# Dynamically add new servers or modify server options at runtime. Also adds new
|
148
|
-
# servers to the connection pool.
|
149
|
-
# configurations where it is useful to add new server hosts at runtime.
|
166
|
+
# servers to the connection pool. Only usable when using a sharded connection pool.
|
150
167
|
#
|
151
168
|
# servers argument should be a hash with server name symbol keys and hash or
|
152
169
|
# proc values. If a servers key is already in use, it's value is overridden
|
153
170
|
# with the value provided.
|
154
171
|
#
|
155
|
-
# DB.add_servers(:
|
172
|
+
# DB.add_servers(f: {host: "hash_host_f"})
|
156
173
|
def add_servers(servers)
|
157
|
-
|
158
|
-
|
159
|
-
@pool.add_servers(servers.keys)
|
174
|
+
unless sharded?
|
175
|
+
raise Error, "cannot call Database#add_servers on a Database instance that does not use a sharded connection pool"
|
160
176
|
end
|
177
|
+
|
178
|
+
h = @opts[:servers]
|
179
|
+
Sequel.synchronize{h.merge!(servers)}
|
180
|
+
@pool.add_servers(servers.keys)
|
161
181
|
end
|
162
182
|
|
163
183
|
# The database type for this database object, the same as the adapter scheme
|
@@ -165,24 +185,24 @@ module Sequel
|
|
165
185
|
# to be the correct type, so that even if two separate Database objects are
|
166
186
|
# using different adapters you can tell that they are using the same database
|
167
187
|
# type. Even better, you can tell that two Database objects that are using
|
168
|
-
# the same adapter are connecting to different database types
|
169
|
-
# DataObjects).
|
188
|
+
# the same adapter are connecting to different database types.
|
170
189
|
#
|
171
|
-
# Sequel.connect('jdbc:postgres://...').database_type
|
190
|
+
# Sequel.connect('jdbc:postgres://...').database_type
|
191
|
+
# # => :postgres
|
172
192
|
def database_type
|
173
193
|
adapter_scheme
|
174
194
|
end
|
175
195
|
|
176
196
|
# Disconnects all available connections from the connection pool. Any
|
177
197
|
# connections currently in use will not be disconnected. Options:
|
178
|
-
# :
|
198
|
+
# :server :: Should be a symbol specifing the server to disconnect from,
|
179
199
|
# or an array of symbols to specify multiple servers.
|
180
200
|
#
|
181
201
|
# Example:
|
182
202
|
#
|
183
203
|
# DB.disconnect # All servers
|
184
|
-
# DB.disconnect(:
|
185
|
-
# DB.disconnect(:
|
204
|
+
# DB.disconnect(server: :server1) # Single server
|
205
|
+
# DB.disconnect(server: [:server1, :server2]) # Multiple servers
|
186
206
|
def disconnect(opts = OPTS)
|
187
207
|
pool.disconnect(opts)
|
188
208
|
end
|
@@ -194,19 +214,8 @@ module Sequel
|
|
194
214
|
conn.close
|
195
215
|
end
|
196
216
|
|
197
|
-
#
|
198
|
-
#
|
199
|
-
# modifications (DDL queries) on each shard.
|
200
|
-
#
|
201
|
-
# DB.each_server{|db| db.create_table(:users){primary_key :id; String :name}}
|
202
|
-
def each_server(&block)
|
203
|
-
raise(Error, "Database#each_server must be passed a block") unless block
|
204
|
-
servers.each{|s| self.class.connect(server_opts(s), &block)}
|
205
|
-
end
|
206
|
-
|
207
|
-
# Dynamically remove existing servers from the connection pool. Intended for
|
208
|
-
# use with master/slave or shard configurations where it is useful to remove
|
209
|
-
# existing server hosts at runtime.
|
217
|
+
# Dynamically remove existing servers from the connection pool. Only usable
|
218
|
+
# when using a sharded connection pool
|
210
219
|
#
|
211
220
|
# servers should be symbols or arrays of symbols. If a nonexistent server
|
212
221
|
# is specified, it is ignored. If no servers have been specified for
|
@@ -215,10 +224,13 @@ module Sequel
|
|
215
224
|
#
|
216
225
|
# DB.remove_servers(:f1, :f2)
|
217
226
|
def remove_servers(*servers)
|
218
|
-
|
219
|
-
|
220
|
-
@pool.remove_servers(servers)
|
227
|
+
unless sharded?
|
228
|
+
raise Error, "cannot call Database#remove_servers on a Database instance that does not use a sharded connection pool"
|
221
229
|
end
|
230
|
+
|
231
|
+
h = @opts[:servers]
|
232
|
+
servers.flatten.each{|s| Sequel.synchronize{h.delete(s)}}
|
233
|
+
@pool.remove_servers(servers)
|
222
234
|
end
|
223
235
|
|
224
236
|
# An array of servers/shards for this Database object.
|
@@ -234,7 +246,13 @@ module Sequel
|
|
234
246
|
@single_threaded
|
235
247
|
end
|
236
248
|
|
237
|
-
if
|
249
|
+
if RUBY_ENGINE == 'ruby' && RUBY_VERSION < '2.5'
|
250
|
+
# :nocov:
|
251
|
+
def synchronize(server=nil)
|
252
|
+
@pool.hold(server || :default){|conn| yield conn}
|
253
|
+
end
|
254
|
+
# :nocov:
|
255
|
+
else
|
238
256
|
# Acquires a database connection, yielding it to the passed block. This is
|
239
257
|
# useful if you want to make sure the same connection is used for all
|
240
258
|
# database queries in the block. It is also useful if you want to gain
|
@@ -247,15 +265,9 @@ module Sequel
|
|
247
265
|
# DB.synchronize do |conn|
|
248
266
|
# # ...
|
249
267
|
# end
|
250
|
-
def synchronize(server=nil)
|
251
|
-
@pool.hold(server || :default){|conn| yield conn}
|
252
|
-
end
|
253
|
-
else
|
254
|
-
# :nocov:
|
255
268
|
def synchronize(server=nil, &block)
|
256
269
|
@pool.hold(server || :default, &block)
|
257
270
|
end
|
258
|
-
# :nocov:
|
259
271
|
end
|
260
272
|
|
261
273
|
# Attempts to acquire a database connection. Returns true if successful.
|
@@ -43,6 +43,9 @@ module Sequel
|
|
43
43
|
# injection:
|
44
44
|
#
|
45
45
|
# DB.fetch('SELECT * FROM items WHERE name = ?', my_name).all
|
46
|
+
#
|
47
|
+
# See caveats listed in Dataset#with_sql regarding datasets using custom
|
48
|
+
# SQL and the methods that can be called on them.
|
46
49
|
def fetch(sql, *args, &block)
|
47
50
|
ds = @default_dataset.with_sql(sql, *args)
|
48
51
|
ds.each(&block) if block
|
@@ -50,19 +53,24 @@ module Sequel
|
|
50
53
|
end
|
51
54
|
|
52
55
|
# Returns a new dataset with the +from+ method invoked. If a block is given,
|
53
|
-
# it
|
56
|
+
# it acts as a virtual row block
|
54
57
|
#
|
55
58
|
# DB.from(:items) # SELECT * FROM items
|
56
|
-
# DB.from
|
59
|
+
# DB.from{schema[:table]} # SELECT * FROM schema.table
|
57
60
|
def from(*args, &block)
|
58
|
-
|
59
|
-
|
61
|
+
if block
|
62
|
+
@default_dataset.from(*args, &block)
|
63
|
+
elsif args.length == 1 && (table = args[0]).is_a?(Symbol)
|
64
|
+
@default_dataset.send(:cached_dataset, :"_from_#{table}_ds"){@default_dataset.from(table)}
|
65
|
+
else
|
66
|
+
@default_dataset.from(*args)
|
67
|
+
end
|
60
68
|
end
|
61
69
|
|
62
70
|
# Returns a new dataset with the select method invoked.
|
63
71
|
#
|
64
72
|
# DB.select(1) # SELECT 1
|
65
|
-
# DB.select{server_version
|
73
|
+
# DB.select{server_version.function} # SELECT server_version()
|
66
74
|
# DB.select(:id).from(:items) # SELECT id FROM items
|
67
75
|
def select(*args, &block)
|
68
76
|
@default_dataset.select(*args, &block)
|
@@ -7,45 +7,11 @@ module Sequel
|
|
7
7
|
# This methods change the default behavior of this database's datasets.
|
8
8
|
# ---------------------
|
9
9
|
|
10
|
-
# The default class to use for datasets
|
11
|
-
DatasetClass = Sequel::Dataset
|
12
|
-
|
13
|
-
@identifier_input_method = nil
|
14
|
-
@identifier_output_method = nil
|
15
|
-
@quote_identifiers = nil
|
16
|
-
|
17
|
-
class << self
|
18
|
-
# The identifier input method to use by default for all databases (default: adapter default)
|
19
|
-
attr_reader :identifier_input_method
|
20
|
-
|
21
|
-
# The identifier output method to use by default for all databases (default: adapter default)
|
22
|
-
attr_reader :identifier_output_method
|
23
|
-
|
24
|
-
# Whether to quote identifiers (columns and tables) by default for all databases (default: adapter default)
|
25
|
-
attr_accessor :quote_identifiers
|
26
|
-
end
|
27
|
-
|
28
|
-
# Change the default identifier input method to use for all databases,
|
29
|
-
def self.identifier_input_method=(v)
|
30
|
-
@identifier_input_method = v.nil? ? false : v
|
31
|
-
end
|
32
|
-
|
33
|
-
# Change the default identifier output method to use for all databases,
|
34
|
-
def self.identifier_output_method=(v)
|
35
|
-
@identifier_output_method = v.nil? ? false : v
|
36
|
-
end
|
37
|
-
|
38
10
|
# The class to use for creating datasets. Should respond to
|
39
11
|
# new with the Database argument as the first argument, and
|
40
12
|
# an optional options hash.
|
41
13
|
attr_reader :dataset_class
|
42
14
|
|
43
|
-
# The identifier input method to use by default for this database (default: adapter default)
|
44
|
-
attr_reader :identifier_input_method
|
45
|
-
|
46
|
-
# The identifier output method to use by default for this database (default: adapter default)
|
47
|
-
attr_reader :identifier_output_method
|
48
|
-
|
49
15
|
# If the database has any dataset modules associated with it,
|
50
16
|
# use a subclass of the given class that includes the modules
|
51
17
|
# as the dataset class.
|
@@ -67,9 +33,12 @@ module Sequel
|
|
67
33
|
# This allows you to override any of the dataset methods even if they are
|
68
34
|
# defined directly on the dataset class that this Database object uses.
|
69
35
|
#
|
36
|
+
# If a block is given, a Dataset::DatasetModule instance is created, allowing
|
37
|
+
# for the easy creation of named dataset methods that will do caching.
|
38
|
+
#
|
70
39
|
# Examples:
|
71
40
|
#
|
72
|
-
# #
|
41
|
+
# # Introspect columns for all of DB's datasets
|
73
42
|
# DB.extend_datasets(Sequel::ColumnsIntrospection)
|
74
43
|
#
|
75
44
|
# # Trace all SELECT queries by printing the SQL and the full backtrace
|
@@ -80,9 +49,19 @@ module Sequel
|
|
80
49
|
# super
|
81
50
|
# end
|
82
51
|
# end
|
52
|
+
#
|
53
|
+
# # Add some named dataset methods
|
54
|
+
# DB.extend_datasets do
|
55
|
+
# order :by_id, :id
|
56
|
+
# select :with_id_and_name, :id, :name
|
57
|
+
# where :active, :active
|
58
|
+
# end
|
59
|
+
#
|
60
|
+
# DB[:table].active.with_id_and_name.by_id
|
61
|
+
# # SELECT id, name FROM table WHERE active ORDER BY id
|
83
62
|
def extend_datasets(mod=nil, &block)
|
84
63
|
raise(Error, "must provide either mod or block, not both") if mod && block
|
85
|
-
mod =
|
64
|
+
mod = Dataset::DatasetModule.new(&block) if block
|
86
65
|
if @dataset_modules.empty?
|
87
66
|
@dataset_modules = [mod]
|
88
67
|
@dataset_class = Class.new(@dataset_class)
|
@@ -93,85 +72,22 @@ module Sequel
|
|
93
72
|
reset_default_dataset
|
94
73
|
end
|
95
74
|
|
96
|
-
# Set the method to call on identifiers going into the database:
|
97
|
-
#
|
98
|
-
# DB[:items] # SELECT * FROM items
|
99
|
-
# DB.identifier_input_method = :upcase
|
100
|
-
# DB[:items] # SELECT * FROM ITEMS
|
101
|
-
def identifier_input_method=(v)
|
102
|
-
reset_default_dataset
|
103
|
-
@identifier_input_method = v
|
104
|
-
end
|
105
|
-
|
106
|
-
# Set the method to call on identifiers coming from the database:
|
107
|
-
#
|
108
|
-
# DB[:items].first # {:id=>1, :name=>'foo'}
|
109
|
-
# DB.identifier_output_method = :upcase
|
110
|
-
# DB[:items].first # {:ID=>1, :NAME=>'foo'}
|
111
|
-
def identifier_output_method=(v)
|
112
|
-
reset_default_dataset
|
113
|
-
@identifier_output_method = v
|
114
|
-
end
|
115
|
-
|
116
|
-
# Set whether to quote identifiers (columns and tables) for this database:
|
117
|
-
#
|
118
|
-
# DB[:items] # SELECT * FROM items
|
119
|
-
# DB.quote_identifiers = true
|
120
|
-
# DB[:items] # SELECT * FROM "items"
|
121
|
-
def quote_identifiers=(v)
|
122
|
-
reset_default_dataset
|
123
|
-
@quote_identifiers = v
|
124
|
-
end
|
125
|
-
|
126
|
-
# Returns true if the database quotes identifiers.
|
127
|
-
def quote_identifiers?
|
128
|
-
@quote_identifiers
|
129
|
-
end
|
130
|
-
|
131
75
|
private
|
132
76
|
|
133
77
|
# The default dataset class to use for the database
|
134
78
|
def dataset_class_default
|
135
|
-
|
79
|
+
Sequel::Dataset
|
136
80
|
end
|
137
81
|
|
138
|
-
# Reset the default dataset used by most Database methods that
|
139
|
-
# create datasets. Usually done after changes to the identifier
|
140
|
-
# mangling methods.
|
82
|
+
# Reset the default dataset used by most Database methods that create datasets.
|
141
83
|
def reset_default_dataset
|
142
84
|
Sequel.synchronize{@symbol_literal_cache.clear}
|
143
85
|
@default_dataset = dataset
|
144
86
|
end
|
145
87
|
|
146
|
-
#
|
147
|
-
# Should be overridden in subclasses for databases that fold unquoted
|
148
|
-
# identifiers to lower case instead of uppercase, such as
|
149
|
-
# MySQL, PostgreSQL, and SQLite.
|
150
|
-
def identifier_input_method_default
|
151
|
-
:upcase
|
152
|
-
end
|
153
|
-
|
154
|
-
# The method to apply to identifiers coming the database by default.
|
155
|
-
# Should be overridden in subclasses for databases that fold unquoted
|
156
|
-
# identifiers to lower case instead of uppercase, such as
|
157
|
-
# MySQL, PostgreSQL, and SQLite.
|
158
|
-
def identifier_output_method_default
|
159
|
-
:downcase
|
160
|
-
end
|
161
|
-
|
162
|
-
# Whether to quote identifiers by default for this database, true
|
163
|
-
# by default.
|
88
|
+
# Whether to quote identifiers by default for this database, true by default.
|
164
89
|
def quote_identifiers_default
|
165
90
|
true
|
166
91
|
end
|
167
|
-
|
168
|
-
# Reset the identifier mangling options. Overrides any already set on
|
169
|
-
# the instance. Only for internal use by shared adapters.
|
170
|
-
def reset_identifier_mangling
|
171
|
-
@quote_identifiers = @opts.fetch(:quote_identifiers){(qi = Database.quote_identifiers).nil? ? quote_identifiers_default : qi}
|
172
|
-
@identifier_input_method = @opts.fetch(:identifier_input_method){(iim = Database.identifier_input_method).nil? ? identifier_input_method_default : (iim if iim)}
|
173
|
-
@identifier_output_method = @opts.fetch(:identifier_output_method){(iom = Database.identifier_output_method).nil? ? identifier_output_method_default : (iom if iom)}
|
174
|
-
reset_default_dataset
|
175
|
-
end
|
176
92
|
end
|
177
93
|
end
|
@@ -8,7 +8,7 @@ module Sequel
|
|
8
8
|
# database supprots a given feature.
|
9
9
|
# ---------------------
|
10
10
|
|
11
|
-
# Whether the database uses a global namespace for the index. If
|
11
|
+
# Whether the database uses a global namespace for the index, true by default. If
|
12
12
|
# false, the indexes are going to be namespaced per table.
|
13
13
|
def global_index_namespace?
|
14
14
|
true
|
@@ -33,7 +33,7 @@ module Sequel
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# Whether the database supports DROP TABLE IF EXISTS syntax,
|
36
|
-
#
|
36
|
+
# false by default.
|
37
37
|
def supports_drop_table_if_exists?
|
38
38
|
supports_create_table_if_not_exists?
|
39
39
|
end
|
@@ -49,7 +49,8 @@ module Sequel
|
|
49
49
|
respond_to?(:indexes)
|
50
50
|
end
|
51
51
|
|
52
|
-
# Whether the database supports partial indexes (indexes on a subset of a table)
|
52
|
+
# Whether the database supports partial indexes (indexes on a subset of a table),
|
53
|
+
# false by default.
|
53
54
|
def supports_partial_indexes?
|
54
55
|
false
|
55
56
|
end
|
@@ -66,7 +67,7 @@ module Sequel
|
|
66
67
|
end
|
67
68
|
|
68
69
|
# Whether the database and adapter support savepoints inside prepared transactions
|
69
|
-
# (two-phase commit),
|
70
|
+
# (two-phase commit), false by default.
|
70
71
|
def supports_savepoints_in_prepared_transactions?
|
71
72
|
supports_prepared_transactions? && supports_savepoints?
|
72
73
|
end
|
@@ -108,6 +109,19 @@ module Sequel
|
|
108
109
|
|
109
110
|
private
|
110
111
|
|
112
|
+
# Whether the database supports adding primary key constraints on NULLable columns,
|
113
|
+
# automatically making them NOT NULL. If false, the columns must be set NOT NULL
|
114
|
+
# before the primary key constraint is added.
|
115
|
+
def can_add_primary_key_constraint_on_nullable_columns?
|
116
|
+
true
|
117
|
+
end
|
118
|
+
|
119
|
+
# Whether this dataset considers unquoted identifiers as uppercase. True
|
120
|
+
# by default as that is the SQL standard
|
121
|
+
def folds_unquoted_identifiers_to_uppercase?
|
122
|
+
true
|
123
|
+
end
|
124
|
+
|
111
125
|
# Whether the database supports combining multiple alter table
|
112
126
|
# operations into a single query, false by default.
|
113
127
|
def supports_combining_alter_table_ops?
|
@@ -32,25 +32,20 @@ module Sequel
|
|
32
32
|
log_each(:info, args ? "#{message}; #{args.inspect}" : message)
|
33
33
|
end
|
34
34
|
|
35
|
-
# Yield to the block, logging any errors at error level to all loggers,
|
36
|
-
# and all other queries with the duration at warn or info level.
|
37
|
-
def log_yield(sql, args=nil, &block)
|
38
|
-
log_connection_yield(sql, nil, args, &block)
|
39
|
-
end
|
40
|
-
|
41
35
|
# Yield to the block, logging any errors at error level to all loggers,
|
42
36
|
# and all other queries with the duration at warn or info level.
|
43
37
|
def log_connection_yield(sql, conn, args=nil)
|
44
|
-
return yield if
|
38
|
+
return yield if skip_logging?
|
45
39
|
sql = "#{connection_info(conn) if conn && log_connection_info}#{sql}#{"; #{args.inspect}" if args}"
|
46
|
-
|
40
|
+
timer = Sequel.start_timer
|
41
|
+
|
47
42
|
begin
|
48
43
|
yield
|
49
44
|
rescue => e
|
50
45
|
log_exception(e, sql)
|
51
46
|
raise
|
52
47
|
ensure
|
53
|
-
log_duration(
|
48
|
+
log_duration(Sequel.elapsed_seconds_since(timer), sql) unless e
|
54
49
|
end
|
55
50
|
end
|
56
51
|
|
@@ -63,6 +58,12 @@ module Sequel
|
|
63
58
|
|
64
59
|
private
|
65
60
|
|
61
|
+
# Determine if logging should be skipped. Defaults to true if no loggers
|
62
|
+
# have been specified.
|
63
|
+
def skip_logging?
|
64
|
+
@loggers.empty?
|
65
|
+
end
|
66
|
+
|
66
67
|
# String including information about the connection, for use when logging
|
67
68
|
# connection info.
|
68
69
|
def connection_info(conn)
|
@@ -72,7 +73,7 @@ module Sequel
|
|
72
73
|
# Log the given SQL and then execute it on the connection, used by
|
73
74
|
# the transaction code.
|
74
75
|
def log_connection_execute(conn, sql)
|
75
|
-
log_connection_yield(sql, conn){conn.
|
76
|
+
log_connection_yield(sql, conn){conn.public_send(connection_execute_method, sql)}
|
76
77
|
end
|
77
78
|
|
78
79
|
# Log message with message prefixed by duration at info level, or
|
@@ -84,7 +85,7 @@ module Sequel
|
|
84
85
|
# Log message at level (which should be :error, :warn, or :info)
|
85
86
|
# to all loggers.
|
86
87
|
def log_each(level, message)
|
87
|
-
@loggers.each{|logger| logger.
|
88
|
+
@loggers.each{|logger| logger.public_send(level, message)}
|
88
89
|
end
|
89
90
|
end
|
90
91
|
end
|