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
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen-string-literal: true
|
2
|
+
|
3
|
+
module Sequel
|
4
|
+
class Dataset
|
5
|
+
# This Module subclass is used by Database#extend_datasets
|
6
|
+
# and Dataset#with_extend to add dataset methods to classes.
|
7
|
+
# It adds some helper methods inside the module that can define
|
8
|
+
# named methods on the dataset instances which do specific actions.
|
9
|
+
# For example:
|
10
|
+
#
|
11
|
+
# DB.extend_datasets do
|
12
|
+
# order :by_id, :id
|
13
|
+
# select :with_id_and_name, :id, :name
|
14
|
+
# where :active, :active
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# DB[:table].active.with_id_and_name.by_id
|
18
|
+
# # SELECT id, name FROM table WHERE active ORDER BY id
|
19
|
+
class DatasetModule < ::Module
|
20
|
+
meths = (<<-METHS).split.map(&:to_sym)
|
21
|
+
where exclude exclude_having having
|
22
|
+
distinct grep group group_and_count group_append
|
23
|
+
limit offset order order_append order_prepend reverse
|
24
|
+
select select_all select_append select_group server
|
25
|
+
METHS
|
26
|
+
|
27
|
+
# Define a method in the module
|
28
|
+
def self.def_dataset_caching_method(mod, meth)
|
29
|
+
mod.send(:define_method, meth) do |name, *args, &block|
|
30
|
+
if block
|
31
|
+
define_method(name){public_send(meth, *args, &block)}
|
32
|
+
else
|
33
|
+
key = :"_#{meth}_#{name}_ds"
|
34
|
+
define_method(name) do
|
35
|
+
cached_dataset(key){public_send(meth, *args)}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
meths.each do |meth|
|
42
|
+
def_dataset_caching_method(self, meth)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -10,52 +10,52 @@ module Sequel
|
|
10
10
|
|
11
11
|
# Whether this dataset quotes identifiers.
|
12
12
|
def quote_identifiers?
|
13
|
-
|
14
|
-
@quote_identifiers
|
15
|
-
else
|
16
|
-
@quote_identifiers = db.quote_identifiers?
|
17
|
-
end
|
13
|
+
@opts.fetch(:quote_identifiers, true)
|
18
14
|
end
|
19
15
|
|
20
16
|
# Whether this dataset will provide accurate number of rows matched for
|
21
|
-
# delete and update statements. Accurate in this case is the number of
|
17
|
+
# delete and update statements, true by default. Accurate in this case is the number of
|
22
18
|
# rows matched by the dataset's filter.
|
23
19
|
def provides_accurate_rows_matched?
|
24
20
|
true
|
25
21
|
end
|
26
22
|
|
27
|
-
# Whether you must use a column alias list for recursive CTEs
|
28
|
-
# default).
|
23
|
+
# Whether you must use a column alias list for recursive CTEs, false by default.
|
29
24
|
def recursive_cte_requires_column_aliases?
|
30
25
|
false
|
31
26
|
end
|
32
27
|
|
33
|
-
# Whether the dataset requires SQL standard datetimes
|
34
|
-
# as most allow strings with ISO 8601 format
|
28
|
+
# Whether the dataset requires SQL standard datetimes. False by default,
|
29
|
+
# as most allow strings with ISO 8601 format.
|
35
30
|
def requires_sql_standard_datetimes?
|
36
31
|
false
|
37
32
|
end
|
38
33
|
|
39
34
|
# Whether type specifiers are required for prepared statement/bound
|
40
|
-
# variable argument placeholders (i.e. :bv__integer)
|
35
|
+
# variable argument placeholders (i.e. :bv__integer), false by default.
|
41
36
|
def requires_placeholder_type_specifiers?
|
42
37
|
false
|
43
38
|
end
|
44
39
|
|
45
|
-
# Whether the dataset supports common table expressions
|
40
|
+
# Whether the dataset supports common table expressions, false by default.
|
46
41
|
# If given, +type+ can be :select, :insert, :update, or :delete, in which case it
|
47
42
|
# determines whether WITH is supported for the respective statement type.
|
48
43
|
def supports_cte?(type=:select)
|
49
44
|
false
|
50
45
|
end
|
51
46
|
|
52
|
-
# Whether the dataset supports common table expressions
|
53
|
-
#
|
47
|
+
# Whether the dataset supports common table expressions in subqueries, false by default.
|
48
|
+
# If false, applies the WITH clause to the main query, which can cause issues
|
54
49
|
# if multiple WITH clauses use the same name.
|
55
50
|
def supports_cte_in_subqueries?
|
56
51
|
false
|
57
52
|
end
|
58
53
|
|
54
|
+
# Whether deleting from joined datasets is supported, false by default.
|
55
|
+
def supports_deleting_joins?
|
56
|
+
supports_modifying_joins?
|
57
|
+
end
|
58
|
+
|
59
59
|
# Whether the database supports derived column lists (e.g.
|
60
60
|
# "table_expr AS table_alias(column_alias1, column_alias2, ...)"), true by
|
61
61
|
# default.
|
@@ -68,23 +68,23 @@ module Sequel
|
|
68
68
|
false
|
69
69
|
end
|
70
70
|
|
71
|
-
# Whether the dataset supports CUBE with GROUP BY.
|
71
|
+
# Whether the dataset supports CUBE with GROUP BY, false by default.
|
72
72
|
def supports_group_cube?
|
73
73
|
false
|
74
74
|
end
|
75
75
|
|
76
|
-
# Whether the dataset supports ROLLUP with GROUP BY.
|
76
|
+
# Whether the dataset supports ROLLUP with GROUP BY, false by default.
|
77
77
|
def supports_group_rollup?
|
78
78
|
false
|
79
79
|
end
|
80
80
|
|
81
|
-
# Whether the dataset supports GROUPING SETS with GROUP BY.
|
81
|
+
# Whether the dataset supports GROUPING SETS with GROUP BY, false by default.
|
82
82
|
def supports_grouping_sets?
|
83
83
|
false
|
84
84
|
end
|
85
85
|
|
86
86
|
# Whether this dataset supports the +insert_select+ method for returning all columns values
|
87
|
-
# directly from an insert query.
|
87
|
+
# directly from an insert query, false by default.
|
88
88
|
def supports_insert_select?
|
89
89
|
supports_returning?(:insert)
|
90
90
|
end
|
@@ -99,33 +99,44 @@ module Sequel
|
|
99
99
|
true
|
100
100
|
end
|
101
101
|
|
102
|
-
# Whether the dataset supports the IS TRUE syntax.
|
102
|
+
# Whether the dataset supports the IS TRUE syntax, true by default.
|
103
103
|
def supports_is_true?
|
104
104
|
true
|
105
105
|
end
|
106
106
|
|
107
|
-
# Whether the dataset supports the JOIN table USING (column1, ...) syntax.
|
107
|
+
# Whether the dataset supports the JOIN table USING (column1, ...) syntax, true by default.
|
108
|
+
# If false, support is emulated using JOIN table ON (table.column1 = other_table.column1).
|
108
109
|
def supports_join_using?
|
109
110
|
true
|
110
111
|
end
|
111
112
|
|
112
|
-
# Whether the dataset supports LATERAL for subqueries in the FROM or JOIN clauses.
|
113
|
+
# Whether the dataset supports LATERAL for subqueries in the FROM or JOIN clauses, false by default.
|
113
114
|
def supports_lateral_subqueries?
|
114
115
|
false
|
115
116
|
end
|
116
117
|
|
117
|
-
# Whether limits are supported in correlated subqueries
|
118
|
+
# Whether limits are supported in correlated subqueries, true by default.
|
118
119
|
def supports_limits_in_correlated_subqueries?
|
119
120
|
true
|
120
121
|
end
|
121
122
|
|
122
|
-
# Whether
|
123
|
+
# Whether the dataset supports skipping raising an error instead of waiting for locked rows when returning data, false by default.
|
124
|
+
def supports_nowait?
|
125
|
+
false
|
126
|
+
end
|
127
|
+
|
128
|
+
# Whether the MERGE statement is supported, false by default.
|
129
|
+
def supports_merge?
|
130
|
+
false
|
131
|
+
end
|
132
|
+
|
133
|
+
# Whether modifying joined datasets is supported, false by default.
|
123
134
|
def supports_modifying_joins?
|
124
135
|
false
|
125
136
|
end
|
126
137
|
|
127
138
|
# Whether the IN/NOT IN operators support multiple columns when an
|
128
|
-
# array of values is given.
|
139
|
+
# array of values is given, true by default.
|
129
140
|
def supports_multiple_column_in?
|
130
141
|
true
|
131
142
|
end
|
@@ -136,12 +147,12 @@ module Sequel
|
|
136
147
|
end
|
137
148
|
|
138
149
|
# Whether the dataset supports or can fully emulate the DISTINCT ON clause,
|
139
|
-
# including respecting the ORDER BY clause, false by default
|
150
|
+
# including respecting the ORDER BY clause, false by default.
|
140
151
|
def supports_ordered_distinct_on?
|
141
152
|
supports_distinct_on?
|
142
153
|
end
|
143
154
|
|
144
|
-
# Whether the dataset supports pattern matching by regular expressions.
|
155
|
+
# Whether the dataset supports pattern matching by regular expressions, false by default.
|
145
156
|
def supports_regexp?
|
146
157
|
false
|
147
158
|
end
|
@@ -151,39 +162,62 @@ module Sequel
|
|
151
162
|
false
|
152
163
|
end
|
153
164
|
|
154
|
-
# Whether the RETURNING clause is supported for the given type of query.
|
165
|
+
# Whether the RETURNING clause is supported for the given type of query, false by default.
|
155
166
|
# +type+ can be :insert, :update, or :delete.
|
156
167
|
def supports_returning?(type)
|
157
168
|
false
|
158
169
|
end
|
159
170
|
|
160
|
-
# Whether the dataset supports skipping locked rows when returning data.
|
171
|
+
# Whether the dataset supports skipping locked rows when returning data, false by default.
|
161
172
|
def supports_skip_locked?
|
162
173
|
false
|
163
174
|
end
|
164
175
|
|
165
|
-
# Whether the database supports SELECT *, column FROM table
|
176
|
+
# Whether the database supports <tt>SELECT *, column FROM table</tt>, true by default.
|
166
177
|
def supports_select_all_and_column?
|
167
178
|
true
|
168
179
|
end
|
169
180
|
|
170
|
-
# Whether the dataset supports timezones in literal timestamps
|
181
|
+
# Whether the dataset supports timezones in literal timestamps, false by default.
|
171
182
|
def supports_timestamp_timezones?
|
172
183
|
false
|
173
184
|
end
|
174
185
|
|
175
|
-
# Whether the dataset supports fractional seconds in literal timestamps
|
186
|
+
# Whether the dataset supports fractional seconds in literal timestamps, true by default.
|
176
187
|
def supports_timestamp_usecs?
|
177
188
|
true
|
178
189
|
end
|
179
190
|
|
180
|
-
# Whether
|
191
|
+
# Whether updating joined datasets is supported, false by default.
|
192
|
+
def supports_updating_joins?
|
193
|
+
supports_modifying_joins?
|
194
|
+
end
|
195
|
+
|
196
|
+
# Whether the dataset supports the WINDOW clause to define windows used by multiple
|
197
|
+
# window functions, false by default.
|
198
|
+
def supports_window_clause?
|
199
|
+
false
|
200
|
+
end
|
201
|
+
|
202
|
+
# Whether the dataset supports window functions, false by default.
|
181
203
|
def supports_window_functions?
|
182
204
|
false
|
183
205
|
end
|
184
206
|
|
207
|
+
# Whether the dataset supports the given window function option. True by default.
|
208
|
+
# This should only be called if supports_window_functions? is true. Possible options
|
209
|
+
# are :rows, :range, :groups, :offset, :exclude.
|
210
|
+
def supports_window_function_frame_option?(option)
|
211
|
+
case option
|
212
|
+
when :rows, :range, :offset
|
213
|
+
true
|
214
|
+
else
|
215
|
+
false
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
185
219
|
# Whether the dataset supports WHERE TRUE (or WHERE 1 for databases that
|
186
|
-
# that use 1 for true).
|
220
|
+
# that use 1 for true), true by default.
|
187
221
|
def supports_where_true?
|
188
222
|
true
|
189
223
|
end
|
@@ -191,12 +225,33 @@ module Sequel
|
|
191
225
|
private
|
192
226
|
|
193
227
|
# Whether insert(nil) or insert({}) must be emulated by
|
194
|
-
# using at least one value
|
228
|
+
# using at least one value.
|
195
229
|
def insert_supports_empty_values?
|
196
230
|
true
|
197
231
|
end
|
198
232
|
|
199
|
-
# Whether the
|
233
|
+
# Whether the dataset needs ESCAPE for LIKE for correct behavior.
|
234
|
+
def requires_like_escape?
|
235
|
+
true
|
236
|
+
end
|
237
|
+
|
238
|
+
# Whether ORDER BY col NULLS FIRST/LAST must be emulated.
|
239
|
+
def requires_emulating_nulls_first?
|
240
|
+
false
|
241
|
+
end
|
242
|
+
|
243
|
+
# Whether common table expressions are supported in UNION/INTERSECT/EXCEPT clauses.
|
244
|
+
def supports_cte_in_compounds?
|
245
|
+
supports_cte_in_subqueries?
|
246
|
+
end
|
247
|
+
|
248
|
+
# Whether the dataset supports the FILTER clause for aggregate functions.
|
249
|
+
# If not, support is emulated using CASE.
|
250
|
+
def supports_filtered_aggregates?
|
251
|
+
false
|
252
|
+
end
|
253
|
+
|
254
|
+
# Whether the database supports quoting function names.
|
200
255
|
def supports_quoted_function_names?
|
201
256
|
false
|
202
257
|
end
|
data/lib/sequel/dataset/graph.rb
CHANGED
@@ -11,16 +11,17 @@ module Sequel
|
|
11
11
|
|
12
12
|
# Adds the given graph aliases to the list of graph aliases to use,
|
13
13
|
# unlike +set_graph_aliases+, which replaces the list (the equivalent
|
14
|
-
# of +
|
14
|
+
# of +select_append+ when graphing). See +set_graph_aliases+.
|
15
15
|
#
|
16
|
-
# DB[:table].add_graph_aliases(:
|
16
|
+
# DB[:table].add_graph_aliases(some_alias: [:table, :column])
|
17
17
|
# # SELECT ..., table.column AS some_alias
|
18
18
|
def add_graph_aliases(graph_aliases)
|
19
|
-
|
19
|
+
graph = opts[:graph]
|
20
|
+
unless (graph && (ga = graph[:column_aliases]))
|
20
21
|
raise Error, "cannot call add_graph_aliases on a dataset that has not been called with graph or set_graph_aliases"
|
21
22
|
end
|
22
23
|
columns, graph_aliases = graph_alias_columns(graph_aliases)
|
23
|
-
|
24
|
+
select_append(*columns).clone(:graph => graph.merge(:column_aliases=>ga.merge(graph_aliases).freeze).freeze)
|
24
25
|
end
|
25
26
|
|
26
27
|
# Similar to Dataset#join_table, but uses unambiguous aliases for selected
|
@@ -59,7 +60,7 @@ module Sequel
|
|
59
60
|
case dataset
|
60
61
|
when Symbol
|
61
62
|
# let alias be the same as the table name (sans any optional schema)
|
62
|
-
# unless alias explicitly given in the symbol using ___ notation
|
63
|
+
# unless alias explicitly given in the symbol using ___ notation and symbol splitting is enabled
|
63
64
|
table_alias ||= split_symbol(table).compact.last
|
64
65
|
when Dataset
|
65
66
|
if dataset.simple_select_all?
|
@@ -95,10 +96,30 @@ module Sequel
|
|
95
96
|
|
96
97
|
table_alias_qualifier = qualifier_from_alias_symbol(table_alias, table)
|
97
98
|
implicit_qualifier = options[:implicit_qualifier]
|
99
|
+
joined_dataset = joined_dataset?
|
98
100
|
ds = self
|
101
|
+
graph = opts[:graph]
|
102
|
+
|
103
|
+
if !graph && (select = @opts[:select]) && !select.empty?
|
104
|
+
select_columns = nil
|
105
|
+
|
106
|
+
unless !joined_dataset && select.length == 1 && (select[0].is_a?(SQL::ColumnAll))
|
107
|
+
force_from_self = false
|
108
|
+
select_columns = select.map do |sel|
|
109
|
+
unless col = _hash_key_symbol(sel)
|
110
|
+
force_from_self = true
|
111
|
+
break
|
112
|
+
end
|
113
|
+
|
114
|
+
[sel, col]
|
115
|
+
end
|
116
|
+
|
117
|
+
select_columns = nil if force_from_self
|
118
|
+
end
|
119
|
+
end
|
99
120
|
|
100
121
|
# Use a from_self if this is already a joined table (or from_self specifically disabled for graphs)
|
101
|
-
if (@opts[:graph_from_self] != false &&
|
122
|
+
if (@opts[:graph_from_self] != false && !graph && (joined_dataset || force_from_self))
|
102
123
|
from_selfed = true
|
103
124
|
implicit_qualifier = options[:from_self_alias] || first_source
|
104
125
|
ds = ds.from_self(:alias=>implicit_qualifier)
|
@@ -113,11 +134,9 @@ module Sequel
|
|
113
134
|
|
114
135
|
# Whether to include the table in the result set
|
115
136
|
add_table = options[:select] == false ? false : true
|
116
|
-
# Whether to add the columns to the list of column aliases
|
117
|
-
add_columns = !ds.opts.include?(:graph_aliases)
|
118
137
|
|
119
|
-
if graph
|
120
|
-
|
138
|
+
if graph
|
139
|
+
graph = graph.dup
|
121
140
|
select = opts[:select].dup
|
122
141
|
[:column_aliases, :table_aliases, :column_alias_num].each{|k| graph[k] = graph[k].dup}
|
123
142
|
else
|
@@ -127,7 +146,7 @@ module Sequel
|
|
127
146
|
raise_alias_error.call if master == table_alias
|
128
147
|
|
129
148
|
# Master hash storing all .graph related information
|
130
|
-
graph =
|
149
|
+
graph = {}
|
131
150
|
|
132
151
|
# Associates column aliases back to tables and columns
|
133
152
|
column_aliases = graph[:column_aliases] = {}
|
@@ -138,30 +157,24 @@ module Sequel
|
|
138
157
|
# Keep track of the alias numbers used
|
139
158
|
ca_num = graph[:column_alias_num] = Hash.new(0)
|
140
159
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
Sequel.qualify(qualifier, Sequel.identifier(column))
|
153
|
-
else
|
154
|
-
# Initial dataset not wrapped in subslect, just make
|
155
|
-
# sure columns are qualified in some way.
|
156
|
-
qualified_expression(sel, qualifier)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
else
|
160
|
-
select = columns.map do |column|
|
161
|
-
column_aliases[column] = [master, column]
|
162
|
-
SQL::QualifiedIdentifier.new(qualifier, column)
|
160
|
+
select = if select_columns
|
161
|
+
select_columns.map do |sel, column|
|
162
|
+
column_aliases[column] = [master, column]
|
163
|
+
if from_selfed
|
164
|
+
# Initial dataset was wrapped in subselect, selected all
|
165
|
+
# columns in the subselect, qualified by the subselect alias.
|
166
|
+
Sequel.qualify(qualifier, Sequel.identifier(column))
|
167
|
+
else
|
168
|
+
# Initial dataset not wrapped in subslect, just make
|
169
|
+
# sure columns are qualified in some way.
|
170
|
+
qualified_expression(sel, qualifier)
|
163
171
|
end
|
164
172
|
end
|
173
|
+
else
|
174
|
+
columns.map do |column|
|
175
|
+
column_aliases[column] = [master, column]
|
176
|
+
SQL::QualifiedIdentifier.new(qualifier, column)
|
177
|
+
end
|
165
178
|
end
|
166
179
|
end
|
167
180
|
|
@@ -173,7 +186,7 @@ module Sequel
|
|
173
186
|
table_aliases[table_alias] = add_table ? dataset : nil
|
174
187
|
|
175
188
|
# Add the columns to the selection unless we are ignoring them
|
176
|
-
if add_table
|
189
|
+
if add_table
|
177
190
|
column_aliases = graph[:column_aliases]
|
178
191
|
ca_num = graph[:column_alias_num]
|
179
192
|
# Which columns to add to the result set
|
@@ -196,11 +209,13 @@ module Sequel
|
|
196
209
|
ident = SQL::QualifiedIdentifier.new(table_alias_qualifier, column)
|
197
210
|
[column, ident]
|
198
211
|
end
|
199
|
-
column_aliases[col_alias] = [table_alias, column]
|
212
|
+
column_aliases[col_alias] = [table_alias, column].freeze
|
200
213
|
select.push(identifier)
|
201
214
|
end
|
202
215
|
end
|
203
|
-
|
216
|
+
[:column_aliases, :table_aliases, :column_alias_num].each{|k| graph[k].freeze}
|
217
|
+
ds = ds.clone(:graph=>graph.freeze)
|
218
|
+
ds.select(*select)
|
204
219
|
end
|
205
220
|
|
206
221
|
# This allows you to manually specify the graph aliases to use
|
@@ -210,44 +225,51 @@ module Sequel
|
|
210
225
|
# graphed dataset, and must be used instead of +select+ whenever
|
211
226
|
# graphing is used.
|
212
227
|
#
|
213
|
-
# graph_aliases
|
214
|
-
#
|
215
|
-
#
|
216
|
-
#
|
217
|
-
#
|
218
|
-
#
|
219
|
-
#
|
220
|
-
#
|
221
|
-
#
|
222
|
-
#
|
228
|
+
# graph_aliases should be a hash with keys being symbols of
|
229
|
+
# column aliases, and values being either symbols or arrays with one to three elements.
|
230
|
+
# If the value is a symbol, it is assumed to be the same as a one element
|
231
|
+
# array containing that symbol.
|
232
|
+
# The first element of the array should be the table alias symbol.
|
233
|
+
# The second should be the actual column name symbol. If the array only
|
234
|
+
# has a single element the column name symbol will be assumed to be the
|
235
|
+
# same as the corresponding hash key. If the array
|
236
|
+
# has a third element, it is used as the value returned, instead of
|
237
|
+
# table_alias.column_name.
|
223
238
|
#
|
224
|
-
# DB[:artists].graph(:albums, :artist_id
|
225
|
-
# set_graph_aliases(:
|
226
|
-
# :
|
227
|
-
# :
|
239
|
+
# DB[:artists].graph(:albums, :artist_id: :id).
|
240
|
+
# set_graph_aliases(name: :artists,
|
241
|
+
# album_name: [:albums, :name],
|
242
|
+
# forty_two: [:albums, :fourtwo, 42]).first
|
228
243
|
# # SELECT artists.name, albums.name AS album_name, 42 AS forty_two ...
|
229
244
|
def set_graph_aliases(graph_aliases)
|
230
245
|
columns, graph_aliases = graph_alias_columns(graph_aliases)
|
231
|
-
|
232
|
-
|
233
|
-
|
246
|
+
if graph = opts[:graph]
|
247
|
+
select(*columns).clone(:graph => graph.merge(:column_aliases=>graph_aliases.freeze).freeze)
|
248
|
+
else
|
249
|
+
raise Error, "cannot call #set_graph_aliases on an ungraphed dataset"
|
250
|
+
end
|
234
251
|
end
|
235
252
|
|
236
253
|
# Remove the splitting of results into subhashes, and all metadata
|
237
254
|
# related to the current graph (if any).
|
238
255
|
def ungraphed
|
239
|
-
clone(:graph=>nil
|
256
|
+
clone(:graph=>nil)
|
240
257
|
end
|
241
258
|
|
242
259
|
private
|
243
260
|
|
244
261
|
# Wrap the alias symbol in an SQL::Identifier if the identifier on which is based
|
245
|
-
# is an SQL::Identifier. This works around cases where the alias symbol contains
|
262
|
+
# is an SQL::Identifier. This works around cases where symbol splitting is enabled and the alias symbol contains
|
246
263
|
# double embedded underscores which would be considered an implicit qualified identifier
|
247
264
|
# if not wrapped in an SQL::Identifier.
|
248
265
|
def qualifier_from_alias_symbol(aliaz, identifier)
|
249
|
-
identifier = identifier.column if identifier.is_a?(SQL::QualifiedIdentifier)
|
250
266
|
case identifier
|
267
|
+
when SQL::QualifiedIdentifier
|
268
|
+
if identifier.column.is_a?(String)
|
269
|
+
Sequel.identifier(aliaz)
|
270
|
+
else
|
271
|
+
aliaz
|
272
|
+
end
|
251
273
|
when SQL::Identifier
|
252
274
|
Sequel.identifier(aliaz)
|
253
275
|
else
|
@@ -260,10 +282,10 @@ module Sequel
|
|
260
282
|
# a select method, and the second is a new hash of preprocessed graph aliases.
|
261
283
|
def graph_alias_columns(graph_aliases)
|
262
284
|
gas = {}
|
263
|
-
identifiers = graph_aliases.
|
285
|
+
identifiers = graph_aliases.map do |col_alias, tc|
|
264
286
|
table, column, value = Array(tc)
|
265
287
|
column ||= col_alias
|
266
|
-
gas[col_alias] = [table, column]
|
288
|
+
gas[col_alias] = [table, column].freeze
|
267
289
|
identifier = value || SQL::QualifiedIdentifier.new(table, column)
|
268
290
|
identifier = SQL::AliasedExpression.new(identifier, col_alias) if value || column != col_alias
|
269
291
|
identifier
|