sequel 4.26.0 → 5.37.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 +405 -5656
- data/MIT-LICENSE +1 -1
- data/README.rdoc +232 -157
- data/bin/sequel +32 -9
- data/doc/advanced_associations.rdoc +252 -188
- data/doc/association_basics.rdoc +231 -273
- data/doc/bin_sequel.rdoc +5 -3
- data/doc/cheat_sheet.rdoc +75 -48
- data/doc/code_order.rdoc +28 -10
- 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/mass_assignment.rdoc +74 -31
- data/doc/migration.rdoc +72 -46
- 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 +59 -69
- data/doc/opening_databases.rdoc +84 -94
- data/doc/postgresql.rdoc +268 -38
- data/doc/prepared_statements.rdoc +29 -24
- data/doc/querying.rdoc +184 -164
- 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.4.0.txt +80 -0
- data/doc/release_notes/5.5.0.txt +61 -0
- data/doc/release_notes/5.6.0.txt +31 -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 +102 -77
- data/doc/security.rdoc +160 -87
- data/doc/sharding.rdoc +74 -47
- data/doc/sql.rdoc +135 -122
- data/doc/testing.rdoc +34 -18
- data/doc/thread_safety.rdoc +2 -4
- data/doc/transactions.rdoc +101 -19
- data/doc/validations.rdoc +64 -51
- data/doc/virtual_rows.rdoc +90 -109
- data/lib/sequel.rb +3 -1
- data/lib/sequel/adapters/ado.rb +154 -22
- data/lib/sequel/adapters/ado/access.rb +21 -21
- data/lib/sequel/adapters/ado/mssql.rb +8 -15
- data/lib/sequel/adapters/amalgalite.rb +17 -25
- data/lib/sequel/adapters/ibmdb.rb +52 -58
- data/lib/sequel/adapters/jdbc.rb +149 -127
- data/lib/sequel/adapters/jdbc/db2.rb +32 -40
- data/lib/sequel/adapters/jdbc/derby.rb +56 -58
- data/lib/sequel/adapters/jdbc/h2.rb +40 -30
- data/lib/sequel/adapters/jdbc/hsqldb.rb +22 -33
- data/lib/sequel/adapters/jdbc/jtds.rb +4 -10
- data/lib/sequel/adapters/jdbc/mssql.rb +6 -12
- data/lib/sequel/adapters/jdbc/mysql.rb +17 -18
- data/lib/sequel/adapters/jdbc/oracle.rb +25 -19
- data/lib/sequel/adapters/jdbc/postgresql.rb +90 -69
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +14 -24
- data/lib/sequel/adapters/jdbc/sqlite.rb +50 -12
- data/lib/sequel/adapters/jdbc/sqlserver.rb +36 -9
- data/lib/sequel/adapters/jdbc/transactions.rb +25 -39
- data/lib/sequel/adapters/mock.rb +104 -113
- data/lib/sequel/adapters/mysql.rb +42 -61
- data/lib/sequel/adapters/mysql2.rb +126 -35
- data/lib/sequel/adapters/odbc.rb +21 -28
- data/lib/sequel/adapters/odbc/db2.rb +3 -1
- data/lib/sequel/adapters/odbc/mssql.rb +11 -15
- data/lib/sequel/adapters/odbc/oracle.rb +11 -0
- data/lib/sequel/adapters/oracle.rb +62 -68
- data/lib/sequel/adapters/postgres.rb +257 -311
- data/lib/sequel/adapters/postgresql.rb +3 -1
- data/lib/sequel/adapters/shared/access.rb +75 -79
- data/lib/sequel/adapters/shared/db2.rb +96 -74
- data/lib/sequel/adapters/shared/mssql.rb +258 -213
- data/lib/sequel/adapters/shared/mysql.rb +284 -216
- data/lib/sequel/adapters/shared/oracle.rb +175 -60
- data/lib/sequel/adapters/shared/postgres.rb +829 -383
- data/lib/sequel/adapters/shared/sqlanywhere.rb +105 -127
- data/lib/sequel/adapters/shared/sqlite.rb +382 -159
- data/lib/sequel/adapters/sqlanywhere.rb +53 -38
- data/lib/sequel/adapters/sqlite.rb +111 -105
- data/lib/sequel/adapters/tinytds.rb +38 -46
- data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +8 -9
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +7 -5
- 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 +3 -4
- data/lib/sequel/adapters/utils/split_alter_table.rb +2 -0
- data/lib/sequel/adapters/utils/stored_procedures.rb +9 -22
- data/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
- data/lib/sequel/ast_transformer.rb +13 -89
- data/lib/sequel/connection_pool.rb +54 -26
- data/lib/sequel/connection_pool/sharded_single.rb +19 -12
- data/lib/sequel/connection_pool/sharded_threaded.rb +160 -111
- data/lib/sequel/connection_pool/single.rb +21 -12
- data/lib/sequel/connection_pool/threaded.rb +137 -119
- data/lib/sequel/core.rb +352 -320
- data/lib/sequel/database.rb +19 -2
- data/lib/sequel/database/connecting.rb +70 -55
- data/lib/sequel/database/dataset.rb +15 -5
- data/lib/sequel/database/dataset_defaults.rb +20 -102
- data/lib/sequel/database/features.rb +20 -4
- data/lib/sequel/database/logging.rb +25 -7
- data/lib/sequel/database/misc.rb +132 -118
- data/lib/sequel/database/query.rb +51 -28
- data/lib/sequel/database/schema_generator.rb +188 -75
- data/lib/sequel/database/schema_methods.rb +161 -92
- data/lib/sequel/database/transactions.rb +260 -58
- data/lib/sequel/dataset.rb +28 -12
- data/lib/sequel/dataset/actions.rb +354 -170
- data/lib/sequel/dataset/dataset_module.rb +46 -0
- data/lib/sequel/dataset/features.rb +81 -34
- data/lib/sequel/dataset/graph.rb +82 -58
- data/lib/sequel/dataset/misc.rb +139 -47
- data/lib/sequel/dataset/placeholder_literalizer.rb +66 -26
- data/lib/sequel/dataset/prepared_statements.rb +188 -85
- data/lib/sequel/dataset/query.rb +428 -214
- data/lib/sequel/dataset/sql.rb +446 -339
- data/lib/sequel/deprecated.rb +14 -2
- data/lib/sequel/exceptions.rb +48 -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 +10 -9
- data/lib/sequel/extensions/any_not_empty.rb +45 -0
- data/lib/sequel/extensions/arbitrary_servers.rb +15 -11
- data/lib/sequel/extensions/auto_literal_strings.rb +74 -0
- data/lib/sequel/extensions/blank.rb +2 -0
- data/lib/sequel/extensions/caller_logging.rb +79 -0
- data/lib/sequel/extensions/columns_introspection.rb +9 -4
- data/lib/sequel/extensions/connection_expiration.rb +99 -0
- data/lib/sequel/extensions/connection_validator.rb +26 -13
- data/lib/sequel/extensions/constant_sql_override.rb +65 -0
- data/lib/sequel/extensions/constraint_validations.rb +93 -38
- data/lib/sequel/extensions/core_extensions.rb +45 -53
- data/lib/sequel/extensions/core_refinements.rb +44 -46
- data/lib/sequel/extensions/current_datetime_timestamp.rb +5 -4
- data/lib/sequel/extensions/dataset_source_alias.rb +4 -0
- data/lib/sequel/extensions/date_arithmetic.rb +42 -16
- data/lib/sequel/extensions/datetime_parse_to_time.rb +37 -0
- data/lib/sequel/extensions/duplicate_columns_handler.rb +94 -0
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +7 -3
- data/lib/sequel/extensions/error_sql.rb +7 -3
- data/lib/sequel/extensions/escaped_like.rb +100 -0
- data/lib/sequel/extensions/eval_inspect.rb +14 -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 +2 -31
- data/lib/sequel/extensions/graph_each.rb +19 -6
- 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 +8 -4
- data/lib/sequel/extensions/integer64.rb +32 -0
- data/lib/sequel/extensions/looser_typecasting.rb +19 -9
- data/lib/sequel/extensions/migration.rb +132 -80
- data/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +4 -0
- data/lib/sequel/extensions/named_timezones.rb +88 -23
- data/lib/sequel/extensions/no_auto_literal_strings.rb +4 -0
- data/lib/sequel/extensions/null_dataset.rb +12 -8
- data/lib/sequel/extensions/pagination.rb +35 -28
- data/lib/sequel/extensions/pg_array.rb +227 -316
- data/lib/sequel/extensions/pg_array_ops.rb +19 -7
- data/lib/sequel/extensions/pg_enum.rb +69 -24
- data/lib/sequel/extensions/pg_extended_date_support.rb +250 -0
- data/lib/sequel/extensions/pg_hstore.rb +50 -59
- data/lib/sequel/extensions/pg_hstore_ops.rb +9 -3
- data/lib/sequel/extensions/pg_inet.rb +34 -15
- data/lib/sequel/extensions/pg_inet_ops.rb +5 -1
- data/lib/sequel/extensions/pg_interval.rb +26 -26
- data/lib/sequel/extensions/pg_json.rb +422 -141
- data/lib/sequel/extensions/pg_json_ops.rb +248 -9
- data/lib/sequel/extensions/pg_loose_count.rb +5 -1
- data/lib/sequel/extensions/pg_range.rb +162 -146
- data/lib/sequel/extensions/pg_range_ops.rb +10 -5
- data/lib/sequel/extensions/pg_row.rb +53 -87
- data/lib/sequel/extensions/pg_row_ops.rb +36 -13
- data/lib/sequel/extensions/pg_static_cache_updater.rb +6 -2
- data/lib/sequel/extensions/pg_timestamptz.rb +28 -0
- data/lib/sequel/extensions/pretty_table.rb +4 -0
- data/lib/sequel/extensions/query.rb +12 -7
- data/lib/sequel/extensions/round_timestamps.rb +6 -9
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/s.rb +59 -0
- data/lib/sequel/extensions/schema_caching.rb +14 -1
- data/lib/sequel/extensions/schema_dumper.rb +83 -55
- data/lib/sequel/extensions/select_remove.rb +8 -4
- data/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
- data/lib/sequel/extensions/server_block.rb +50 -17
- data/lib/sequel/extensions/server_logging.rb +61 -0
- data/lib/sequel/extensions/split_array_nil.rb +8 -4
- data/lib/sequel/extensions/sql_comments.rb +96 -0
- data/lib/sequel/extensions/sql_expr.rb +4 -1
- data/lib/sequel/extensions/string_agg.rb +181 -0
- data/lib/sequel/extensions/string_date_time.rb +2 -0
- data/lib/sequel/extensions/symbol_aref.rb +53 -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/thread_local_timezones.rb +4 -0
- data/lib/sequel/extensions/to_dot.rb +15 -5
- data/lib/sequel/extensions/virtual_row_method_block.rb +44 -0
- data/lib/sequel/model.rb +36 -126
- data/lib/sequel/model/associations.rb +850 -257
- data/lib/sequel/model/base.rb +652 -764
- data/lib/sequel/model/dataset_module.rb +13 -10
- data/lib/sequel/model/default_inflections.rb +3 -1
- data/lib/sequel/model/errors.rb +3 -3
- data/lib/sequel/model/exceptions.rb +12 -12
- data/lib/sequel/model/inflections.rb +8 -19
- data/lib/sequel/model/plugins.rb +111 -0
- data/lib/sequel/plugins/accessed_columns.rb +2 -0
- data/lib/sequel/plugins/active_model.rb +32 -7
- data/lib/sequel/plugins/after_initialize.rb +3 -1
- data/lib/sequel/plugins/association_dependencies.rb +27 -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 +181 -83
- data/lib/sequel/plugins/association_proxies.rb +33 -9
- data/lib/sequel/plugins/auto_validations.rb +58 -23
- data/lib/sequel/plugins/before_after_save.rb +8 -0
- data/lib/sequel/plugins/blacklist_security.rb +23 -12
- data/lib/sequel/plugins/boolean_readers.rb +9 -6
- data/lib/sequel/plugins/boolean_subsets.rb +64 -0
- data/lib/sequel/plugins/caching.rb +27 -16
- data/lib/sequel/plugins/class_table_inheritance.rb +192 -94
- data/lib/sequel/plugins/column_conflicts.rb +18 -3
- data/lib/sequel/plugins/column_select.rb +9 -5
- data/lib/sequel/plugins/columns_updated.rb +42 -0
- data/lib/sequel/plugins/composition.rb +36 -24
- data/lib/sequel/plugins/constraint_validations.rb +37 -16
- data/lib/sequel/plugins/csv_serializer.rb +58 -35
- data/lib/sequel/plugins/dataset_associations.rb +60 -18
- data/lib/sequel/plugins/def_dataset_method.rb +90 -0
- data/lib/sequel/plugins/defaults_setter.rb +74 -13
- data/lib/sequel/plugins/delay_add_association.rb +4 -1
- data/lib/sequel/plugins/dirty.rb +65 -24
- data/lib/sequel/plugins/eager_each.rb +27 -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/error_splitter.rb +19 -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 +9 -12
- data/lib/sequel/plugins/hook_class_methods.rb +39 -54
- data/lib/sequel/plugins/input_transformer.rb +20 -10
- data/lib/sequel/plugins/insert_conflict.rb +72 -0
- data/lib/sequel/plugins/insert_returning_select.rb +4 -2
- data/lib/sequel/plugins/instance_filters.rb +12 -8
- data/lib/sequel/plugins/instance_hooks.rb +36 -17
- data/lib/sequel/plugins/instance_specific_default.rb +113 -0
- data/lib/sequel/plugins/inverted_subsets.rb +24 -13
- data/lib/sequel/plugins/json_serializer.rb +123 -47
- data/lib/sequel/plugins/lazy_attributes.rb +20 -14
- data/lib/sequel/plugins/list.rb +40 -26
- data/lib/sequel/plugins/many_through_many.rb +28 -12
- data/lib/sequel/plugins/modification_detection.rb +17 -5
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +8 -5
- data/lib/sequel/plugins/nested_attributes.rb +55 -28
- data/lib/sequel/plugins/optimistic_locking.rb +5 -3
- data/lib/sequel/plugins/pg_array_associations.rb +52 -18
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +348 -0
- data/lib/sequel/plugins/pg_row.rb +7 -51
- data/lib/sequel/plugins/prepared_statements.rb +53 -72
- data/lib/sequel/plugins/prepared_statements_safe.rb +13 -5
- data/lib/sequel/plugins/rcte_tree.rb +43 -63
- data/lib/sequel/plugins/serialization.rb +37 -44
- data/lib/sequel/plugins/serialization_modification_detection.rb +3 -1
- data/lib/sequel/plugins/sharding.rb +17 -10
- data/lib/sequel/plugins/single_table_inheritance.rb +62 -28
- data/lib/sequel/plugins/singular_table_names.rb +2 -0
- data/lib/sequel/plugins/skip_create_refresh.rb +5 -3
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/split_values.rb +13 -6
- data/lib/sequel/plugins/static_cache.rb +79 -53
- data/lib/sequel/plugins/static_cache_cache.rb +53 -0
- data/lib/sequel/plugins/string_stripper.rb +5 -3
- data/lib/sequel/plugins/subclasses.rb +20 -2
- data/lib/sequel/plugins/subset_conditions.rb +48 -0
- data/lib/sequel/plugins/table_select.rb +4 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +120 -6
- data/lib/sequel/plugins/throw_failures.rb +110 -0
- data/lib/sequel/plugins/timestamps.rb +22 -8
- data/lib/sequel/plugins/touch.rb +21 -8
- data/lib/sequel/plugins/tree.rb +57 -30
- data/lib/sequel/plugins/typecast_on_load.rb +14 -4
- data/lib/sequel/plugins/unlimited_update.rb +3 -7
- data/lib/sequel/plugins/update_or_create.rb +6 -4
- data/lib/sequel/plugins/update_primary_key.rb +3 -1
- data/lib/sequel/plugins/update_refresh.rb +28 -15
- data/lib/sequel/plugins/uuid.rb +70 -0
- data/lib/sequel/plugins/validate_associated.rb +20 -0
- data/lib/sequel/plugins/validation_class_methods.rb +40 -19
- data/lib/sequel/plugins/validation_contexts.rb +49 -0
- data/lib/sequel/plugins/validation_helpers.rb +49 -31
- data/lib/sequel/plugins/whitelist_security.rb +122 -0
- data/lib/sequel/plugins/xml_serializer.rb +31 -30
- data/lib/sequel/sql.rb +479 -329
- data/lib/sequel/timezones.rb +62 -32
- data/lib/sequel/version.rb +10 -3
- metadata +177 -477
- data/Rakefile +0 -165
- data/doc/active_record.rdoc +0 -912
- 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.3.0.txt +0 -40
- 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 -142
- data/lib/sequel/adapters/do.rb +0 -156
- data/lib/sequel/adapters/do/mysql.rb +0 -64
- data/lib/sequel/adapters/do/postgres.rb +0 -42
- data/lib/sequel/adapters/do/sqlite3.rb +0 -40
- data/lib/sequel/adapters/jdbc/as400.rb +0 -82
- data/lib/sequel/adapters/jdbc/cubrid.rb +0 -62
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -34
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -31
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -31
- data/lib/sequel/adapters/odbc/progress.rb +0 -8
- data/lib/sequel/adapters/shared/cubrid.rb +0 -243
- data/lib/sequel/adapters/shared/firebird.rb +0 -245
- data/lib/sequel/adapters/shared/informix.rb +0 -52
- data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +0 -150
- data/lib/sequel/adapters/shared/progress.rb +0 -38
- data/lib/sequel/adapters/swift.rb +0 -158
- data/lib/sequel/adapters/swift/mysql.rb +0 -47
- data/lib/sequel/adapters/swift/postgres.rb +0 -45
- data/lib/sequel/adapters/swift/sqlite.rb +0 -47
- data/lib/sequel/adapters/utils/pg_types.rb +0 -68
- data/lib/sequel/dataset/mutation.rb +0 -109
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -3
- data/lib/sequel/extensions/filter_having.rb +0 -59
- data/lib/sequel/extensions/hash_aliases.rb +0 -45
- data/lib/sequel/extensions/meta_def.rb +0 -31
- data/lib/sequel/extensions/query_literals.rb +0 -80
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -22
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -118
- data/lib/sequel/extensions/set_overrides.rb +0 -72
- data/lib/sequel/no_core_ext.rb +0 -1
- data/lib/sequel/plugins/association_autoreloading.rb +0 -7
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -7
- data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -78
- data/lib/sequel/plugins/prepared_statements_associations.rb +0 -117
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -59
- data/lib/sequel/plugins/schema.rb +0 -80
- data/lib/sequel/plugins/scissors.rb +0 -33
- 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 -706
- data/spec/adapters/mysql_spec.rb +0 -1287
- data/spec/adapters/oracle_spec.rb +0 -313
- data/spec/adapters/postgres_spec.rb +0 -3725
- data/spec/adapters/spec_helper.rb +0 -43
- data/spec/adapters/sqlanywhere_spec.rb +0 -170
- data/spec/adapters/sqlite_spec.rb +0 -653
- data/spec/bin_spec.rb +0 -254
- data/spec/core/connection_pool_spec.rb +0 -1016
- data/spec/core/database_spec.rb +0 -2531
- data/spec/core/dataset_spec.rb +0 -5098
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1243
- data/spec/core/mock_adapter_spec.rb +0 -462
- 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 -179
- data/spec/core/schema_spec.rb +0 -1659
- 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/extensions/accessed_columns_spec.rb +0 -51
- data/spec/extensions/active_model_spec.rb +0 -123
- 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 -365
- data/spec/extensions/association_proxies_spec.rb +0 -86
- data/spec/extensions/auto_validations_spec.rb +0 -192
- 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/caching_spec.rb +0 -270
- data/spec/extensions/class_table_inheritance_spec.rb +0 -420
- 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_validator_spec.rb +0 -120
- data/spec/extensions/constraint_validations_plugin_spec.rb +0 -274
- data/spec/extensions/constraint_validations_spec.rb +0 -325
- data/spec/extensions/core_refinements_spec.rb +0 -519
- data/spec/extensions/csv_serializer_spec.rb +0 -173
- data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
- data/spec/extensions/dataset_associations_spec.rb +0 -311
- data/spec/extensions/dataset_source_alias_spec.rb +0 -51
- data/spec/extensions/date_arithmetic_spec.rb +0 -150
- data/spec/extensions/defaults_setter_spec.rb +0 -101
- data/spec/extensions/delay_add_association_spec.rb +0 -52
- data/spec/extensions/dirty_spec.rb +0 -180
- data/spec/extensions/eager_each_spec.rb +0 -42
- 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 -109
- data/spec/extensions/hash_aliases_spec.rb +0 -24
- data/spec/extensions/hook_class_methods_spec.rb +0 -429
- 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 -291
- data/spec/extensions/lazy_attributes_spec.rb +0 -170
- data/spec/extensions/list_spec.rb +0 -267
- 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 -712
- 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/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 -395
- 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 -229
- 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 -404
- 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 -789
- 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/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_expr_spec.rb +0 -60
- data/spec/extensions/static_cache_spec.rb +0 -361
- 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/table_select_spec.rb +0 -71
- data/spec/extensions/tactical_eager_loading_spec.rb +0 -82
- 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/validate_associated_spec.rb +0 -52
- data/spec/extensions/validation_class_methods_spec.rb +0 -1027
- data/spec/extensions/validation_helpers_spec.rb +0 -541
- 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/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/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/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 -2454
- data/spec/integration/database_test.rb +0 -113
- data/spec/integration/dataset_test.rb +0 -1808
- data/spec/integration/eager_loader_test.rb +0 -687
- data/spec/integration/migrator_test.rb +0 -240
- data/spec/integration/model_test.rb +0 -226
- data/spec/integration/plugin_test.rb +0 -2240
- data/spec/integration/prepared_statement_test.rb +0 -467
- data/spec/integration/schema_test.rb +0 -817
- data/spec/integration/spec_helper.rb +0 -48
- data/spec/integration/timezone_test.rb +0 -86
- data/spec/integration/transaction_test.rb +0 -374
- data/spec/integration/type_test.rb +0 -133
- data/spec/model/association_reflection_spec.rb +0 -525
- data/spec/model/associations_spec.rb +0 -4426
- data/spec/model/base_spec.rb +0 -759
- data/spec/model/class_dataset_methods_spec.rb +0 -146
- data/spec/model/dataset_methods_spec.rb +0 -149
- data/spec/model/eager_loading_spec.rb +0 -2137
- data/spec/model/hooks_spec.rb +0 -604
- data/spec/model/inflector_spec.rb +0 -26
- data/spec/model/model_spec.rb +0 -982
- data/spec/model/plugins_spec.rb +0 -299
- data/spec/model/record_spec.rb +0 -2147
- data/spec/model/spec_helper.rb +0 -46
- data/spec/model/validations_spec.rb +0 -193
- data/spec/sequel_coverage.rb +0 -15
- data/spec/spec_config.rb +0 -10
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* An :auto_increment key has been added to the schema information for
|
|
4
|
-
primary key columns on JDBC, PostgreSQL, MySQL, MSSQL, DB2, and
|
|
5
|
-
SQLite. This fixes issues in the schema_dumper extension where
|
|
6
|
-
non-auto-incrementing integer primary keys are no longer dumped as
|
|
7
|
-
auto-incrementing.
|
|
8
|
-
|
|
9
|
-
For adapters that don't have specific support for detecting
|
|
10
|
-
auto incrementing primary keys, Sequel now assumes a primary key
|
|
11
|
-
is auto incrementing only if it is not a composite primary key
|
|
12
|
-
and the type contains int (e.g. int, integer, bigint).
|
|
13
|
-
|
|
14
|
-
= Other Improvements
|
|
15
|
-
|
|
16
|
-
* Dataset#empty? now ignores any order on the dataset. Previously,
|
|
17
|
-
calling empty? on a dataset ordered by an alias in the SELECT list
|
|
18
|
-
could raise an exception.
|
|
19
|
-
|
|
20
|
-
* Schema qualified tables are now handled correctly in
|
|
21
|
-
many_through_many associations.
|
|
22
|
-
|
|
23
|
-
* Using a hash as the value for the :eager association option now
|
|
24
|
-
works correctly.
|
|
25
|
-
|
|
26
|
-
* All PG::ConnectionBad exceptions are now treated as disconnect
|
|
27
|
-
errors in the postgres adapter. This should be more robust than
|
|
28
|
-
the previous method of trying to recognize disconnect errors by
|
|
29
|
-
trying to parse the exception message.
|
|
30
|
-
|
|
31
|
-
* Sequel now skips a hash allocation when issuing queries through
|
|
32
|
-
datasets if sharding is not used.
|
|
33
|
-
|
|
34
|
-
* Sequel no longer uses the JDBC schema parsing in the jdbc/sqlserver
|
|
35
|
-
adapter. Instead, it uses the MSSQL schema parsing, which should
|
|
36
|
-
be more accurate than the generic JDBC schema parsing.
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* Model#get_column_value and #set_column_value have been added for
|
|
4
|
-
getting/setting column values. Historically, to get column
|
|
5
|
-
values, you would just send the column name, and to set column
|
|
6
|
-
values you would send the column name suffixed by =. However,
|
|
7
|
-
this doesn't work when such methods are already defined by
|
|
8
|
-
ruby or Sequel itself (e.g. class, model, object_id).
|
|
9
|
-
|
|
10
|
-
Both #get_column_value and #set_column_value are just aliases to
|
|
11
|
-
#send, but you can safely override the methods to handle column
|
|
12
|
-
names that conflict with existing method names. Both the core
|
|
13
|
-
model code and all of the plugins that ship with Sequel have
|
|
14
|
-
been updated to use these new methods. External plugins are
|
|
15
|
-
strongly encouraged to switch to these new methods.
|
|
16
|
-
|
|
17
|
-
* A column_conflicts plugin has been added to automatically handle
|
|
18
|
-
columns that conflict with existing method names. So if you
|
|
19
|
-
have a column named "model" in your table, you can just load the
|
|
20
|
-
column_conflicts plugin and Sequel will handle things correctly.
|
|
21
|
-
|
|
22
|
-
* A accessed_columns plugin has been added, which records which
|
|
23
|
-
columns have been accessed for a model instance. This is useful
|
|
24
|
-
in development when you are planning on restricted the columns
|
|
25
|
-
selected by the dataset that retrieved the instance. SELECTing
|
|
26
|
-
only the columns you need can result in significant performance
|
|
27
|
-
increases, and the accessed_columns plugin makes that easier.
|
|
28
|
-
|
|
29
|
-
* Model#cancel_action has been added for canceling actions in
|
|
30
|
-
before hooks, instead of having the before hook methods return
|
|
31
|
-
false (which is still supported). In addition to being easier to
|
|
32
|
-
use, this also makes it possible to use custom exception messages
|
|
33
|
-
for hook failures, if you are using the default behavior of raising
|
|
34
|
-
exceptions on save failures.
|
|
35
|
-
|
|
36
|
-
= Other Improvements
|
|
37
|
-
|
|
38
|
-
* Dataset#union, #intersect, and #except now automatically handle
|
|
39
|
-
datasets with raw SQL, by wrapping such datasets in subqueries.
|
|
40
|
-
|
|
41
|
-
* The integer migrator now stores the correct migration number
|
|
42
|
-
when migrating with allow_missing_migration_files set.
|
|
43
|
-
|
|
44
|
-
* A :timeout=>nil Database option on MySQL no longer sets a
|
|
45
|
-
wait_timeout.
|
data/doc/release_notes/4.2.0.txt
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* LATERAL subqueries are now supported on PostgreSQL 9.3+, HSQLDB,
|
|
4
|
-
and DB2 via Dataset#lateral:
|
|
5
|
-
|
|
6
|
-
DB.from(:a, DB[:b].where(:c=>:a__d).lateral)
|
|
7
|
-
# SELECT * FROM a,
|
|
8
|
-
# LATERAL (SELECT * FROM b WHERE (c = a.d)) AS t1
|
|
9
|
-
|
|
10
|
-
You can use a similar syntax when joining tables:
|
|
11
|
-
|
|
12
|
-
DB[:a].cross_join(DB[:b].where(:c=>:a__d).lateral)
|
|
13
|
-
# SELECT * FROM a
|
|
14
|
-
# CROSS JOIN LATERAL (SELECT * FROM b WHERE (c = a.d)) AS t1
|
|
15
|
-
|
|
16
|
-
If you are using Microsoft SQL Server, you can use the new
|
|
17
|
-
mssql_emulate_lateral_with_apply extension to emulate LATERAL
|
|
18
|
-
subqueries via CROSS/OUTER APPLY.
|
|
19
|
-
|
|
20
|
-
* The static_cache plugin now supports a :frozen=>false option. When
|
|
21
|
-
this option is used, instead of returning the frozen cached values,
|
|
22
|
-
the model now returns new, unfrozen objects that can be modified.
|
|
23
|
-
Note that if you make any database modifications, you are
|
|
24
|
-
responsible for updating the cache manually.
|
|
25
|
-
|
|
26
|
-
* A pg_static_cache_updater extension has been added. This extension
|
|
27
|
-
can automatically update the caches used by the static_cache plugin,
|
|
28
|
-
whenever the underlying database table is updated, using PostgreSQL's
|
|
29
|
-
notification channels.
|
|
30
|
-
|
|
31
|
-
This works by defining triggers on the underlying model tables that
|
|
32
|
-
use NOTIFY, and spinning up a thread in your application processes
|
|
33
|
-
that uses LISTEN, and refreshes the cache for the related model
|
|
34
|
-
whenever it receives a notification that the underlying table has
|
|
35
|
-
been modified.
|
|
36
|
-
|
|
37
|
-
This extension should make it possible to use the static_cache plugin
|
|
38
|
-
with the :frozen=>false option for any table that is small and not
|
|
39
|
-
frequently updated.
|
|
40
|
-
|
|
41
|
-
* A from_block extension has been added that makes Database#from operate
|
|
42
|
-
like Dataset#from in regards to a passed block, allowing you to write
|
|
43
|
-
code like:
|
|
44
|
-
|
|
45
|
-
DB.from{table_returning_function(arg1, arg2)}
|
|
46
|
-
|
|
47
|
-
* Database#supports_partial_indexes? has been added for checking for
|
|
48
|
-
partial index support. Partial indexes are now supported on SQLite
|
|
49
|
-
3.8.0+.
|
|
50
|
-
|
|
51
|
-
* A pg_loose_count extension has been added for fast approximate counts
|
|
52
|
-
of PostgreSQL tables. This uses the system tables and should be
|
|
53
|
-
fairly accurate if the table statistics are up to date:
|
|
54
|
-
|
|
55
|
-
DB.loose_count(:table)
|
|
56
|
-
|
|
57
|
-
* The Dataset#use_cursor method in the postgres adapter now supports
|
|
58
|
-
a :cursor_name option. You can set this option if you want to
|
|
59
|
-
use nested cursors.
|
|
60
|
-
|
|
61
|
-
* The mysql2 adapter now supports a :flags Database option allowing to
|
|
62
|
-
set custom mysql2 flags (e.g. ::Mysql2::Client::MULTI_STATEMENTS).
|
|
63
|
-
|
|
64
|
-
= Other Improvements
|
|
65
|
-
|
|
66
|
-
* Dataset#freeze has been implemented. Previously, it was not
|
|
67
|
-
implemented, so Object#freeze was used, which resulted in a dataset
|
|
68
|
-
that wasn't cloneable. Dataset#freeze now works as expected,
|
|
69
|
-
resulting in a cloneable dataset, but it doesn't allow methods to
|
|
70
|
-
be called that mutate the receiver.
|
|
71
|
-
|
|
72
|
-
* Dataset#dup has been implemented. Previously, it was not
|
|
73
|
-
implemented, so Object#dup was used, which resulted in a dataset
|
|
74
|
-
that shared an options hash with the receiver, so modifying the
|
|
75
|
-
dup's opts could also change the original dataset. Now dup works
|
|
76
|
-
similarly to clone, except that the returned object will not be
|
|
77
|
-
frozen.
|
|
78
|
-
|
|
79
|
-
* Model#dup has been implemented. Previously, it was not implemented,
|
|
80
|
-
so Object#dup was used, which resulted in a model instance that
|
|
81
|
-
shared the values hash with the receiver, so modifying the dup's
|
|
82
|
-
values also changed the original's values. Now, dup does a shallow
|
|
83
|
-
copy of some of the internal data structures as well, so the copy
|
|
84
|
-
is more independent.
|
|
85
|
-
|
|
86
|
-
Note that you still need to be careful if you mutate objects:
|
|
87
|
-
|
|
88
|
-
m = Model.new(:a=>'a')
|
|
89
|
-
m2 = m.dup
|
|
90
|
-
m.a.gsub!('a', 'b') # also changes m2
|
|
91
|
-
|
|
92
|
-
* Model#clone has been implemented. Previously, it had the same
|
|
93
|
-
issues as dup. Now, it calls the new Model#dup, but also
|
|
94
|
-
freezes the returned object if the receiver is frozen.
|
|
95
|
-
|
|
96
|
-
* Placeholder literal strings with an empty parameter hash are now
|
|
97
|
-
handled correctly.
|
|
98
|
-
|
|
99
|
-
= Backwards Compatibility
|
|
100
|
-
|
|
101
|
-
* The static_cache plugin now disallows saving/destroying instances
|
|
102
|
-
unless the :frozen=>false option is used. As the cached objects
|
|
103
|
-
returned by the model were frozen anyway, this affects creating
|
|
104
|
-
new instances or saving/destroying instances returned from the
|
|
105
|
-
underlying dataset.
|
|
106
|
-
|
|
107
|
-
* Model#set_values has been removed (it was deprecated starting in
|
|
108
|
-
Sequel 4.0).
|
|
109
|
-
|
|
110
|
-
* The following Model class methods are no longer defined:
|
|
111
|
-
insert_multiple, set, to_csv, paginate, query, set_overrides,
|
|
112
|
-
set_defaults. By default, these methods used call the
|
|
113
|
-
dataset method of the same name, but as those methods are no
|
|
114
|
-
longer defined on datasets by default, they also resulted in a
|
|
115
|
-
NoMethodError.
|
|
116
|
-
|
|
117
|
-
* Dataset#query!, #set_defaults!, and #set_overrides! are no longer
|
|
118
|
-
defined on all datasets. They are now only defined on datasets
|
|
119
|
-
that use the query or set_overrides extensions.
|
|
120
|
-
|
|
121
|
-
* Partial indexes are no longer returned by Database#indexes on MSSQL,
|
|
122
|
-
for consistency with PostgreSQL. Note that the same change was
|
|
123
|
-
desired for SQLite, but SQLite currently does not offer reflection
|
|
124
|
-
support for determining which indexes are partial.
|
|
125
|
-
|
|
126
|
-
* Database#foreign_key_list on MSSQL now will return a
|
|
127
|
-
SQL::QualifiedIdentifier instead of a symbol for the :table entry if
|
|
128
|
-
the schema of the referenced table does not match the schema of the
|
|
129
|
-
referencing table.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* A :before_retry option has been added to Database#transaction, which
|
|
4
|
-
specifies a proc to call when retrying if the :retry_on option
|
|
5
|
-
is used. This can be used to implement additional logging, sleeping
|
|
6
|
-
between retries, or other things.
|
|
7
|
-
|
|
8
|
-
* The to_json method :root option in the json_serializer plugin can now
|
|
9
|
-
be a string value to specify the name for the object key, instead of
|
|
10
|
-
using the underscored model name.
|
|
11
|
-
|
|
12
|
-
* Dataset#paged_each now returns an enumerator if not passed a block.
|
|
13
|
-
|
|
14
|
-
* You can now set the :instance_specific association option to false.
|
|
15
|
-
Previously, it was automatically set to true in some cases. If you
|
|
16
|
-
know the association does not depend on anything instance-specific
|
|
17
|
-
other than the foreign/primary key, setting this option can allow
|
|
18
|
-
Sequel to perform some additional optimizations.
|
|
19
|
-
|
|
20
|
-
= Other Improvements
|
|
21
|
-
|
|
22
|
-
* Eager loading queries are now skipped if there are no matching keys.
|
|
23
|
-
There was code to check this previously, but it was accidently
|
|
24
|
-
removed in an earlier refactoring.
|
|
25
|
-
|
|
26
|
-
* Eager loading an association with a limit and an eager block and
|
|
27
|
-
cascaded associations now works correctly when the window_function
|
|
28
|
-
limit strategy is used (the default on databases that support
|
|
29
|
-
window functions).
|
|
30
|
-
|
|
31
|
-
* Eager loading an association with a limit with an eager block now
|
|
32
|
-
works correctly on databases do not support window functions but do
|
|
33
|
-
support correlated subqueries.
|
|
34
|
-
|
|
35
|
-
* The parent association is now set on associated objects when loading
|
|
36
|
-
descendants in the rcte_tree plugin. This allows the parent method
|
|
37
|
-
on any of the descendants to work without issuing a database query.
|
|
38
|
-
|
|
39
|
-
* The prepared_statements_associations plugin now only uses prepared
|
|
40
|
-
statements if association metadata is being cached. Previously, it
|
|
41
|
-
would use prepared statements even if association metadata was not
|
|
42
|
-
cached, which could leak the prepared statements.
|
|
43
|
-
|
|
44
|
-
* Model#dup now duplicates the associations hash for the object.
|
|
45
|
-
|
|
46
|
-
* Model#freeze no longer validates an object if the the errors for the
|
|
47
|
-
object are already frozen. The static_cache plugin now freezes the
|
|
48
|
-
errors before freezing the object, so that it doesn't validate the
|
|
49
|
-
object. This can skip many database queries when the
|
|
50
|
-
auto_validations plugin is used and there is a unique constraint or
|
|
51
|
-
index on the related table.
|
|
52
|
-
|
|
53
|
-
* AUTOINCREMENT is now used again on SQLite by default for primary
|
|
54
|
-
keys. It was removed when :auto_increment was added to the schema
|
|
55
|
-
hashes, but the removal changed SQLite's behavior. This restores
|
|
56
|
-
the previous behavior.
|
|
57
|
-
|
|
58
|
-
* Microsoft SQL Server's bit type is now recognized as a boolean type
|
|
59
|
-
by the schema dumper.
|
|
60
|
-
|
|
61
|
-
* The pg_enum extension's create_enum method can now be used in
|
|
62
|
-
reversible migrations.
|
|
63
|
-
|
|
64
|
-
* set_column_type with the :auto_increment=>true option once again
|
|
65
|
-
works on MySQL. It had been broken since Sequel started adding
|
|
66
|
-
:auto_increment to the schema hashes.
|
|
67
|
-
|
|
68
|
-
* The mysql2 adapter now recognizes the :charset option as a synonym
|
|
69
|
-
for :encoding.
|
|
70
|
-
|
|
71
|
-
* The swift adapter now respects database and application timezone
|
|
72
|
-
settings.
|
|
73
|
-
|
|
74
|
-
= Backwards Compatibility
|
|
75
|
-
|
|
76
|
-
* AssociationReflection#apply_ruby_eager_limit_strategy no longer
|
|
77
|
-
checks that the strategy is :ruby, callers are now expected to
|
|
78
|
-
check the value themselves. This should only matter if you are
|
|
79
|
-
using custom association types.
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* SQL::GenericExpression#=~ has been added as an alternative method
|
|
4
|
-
of specifying equality/inclusion/identity. Previously, you had to
|
|
5
|
-
use a hash. This led to some slightly weird looking syntax when
|
|
6
|
-
used inside virtual rows:
|
|
7
|
-
|
|
8
|
-
DB[:items].where{{function(:column)=>0}}
|
|
9
|
-
# SELECT FROM items WHERE function(column) = 0
|
|
10
|
-
|
|
11
|
-
You can now use =~ as an equivalent:
|
|
12
|
-
|
|
13
|
-
DB[:items].where{function(:column) =~ 0}
|
|
14
|
-
# SELECT FROM items WHERE function(column) = 0
|
|
15
|
-
|
|
16
|
-
Like when using a hash, this works also for inclusion:
|
|
17
|
-
|
|
18
|
-
DB[:items].where{function(:column) =~ [1,2,3]}
|
|
19
|
-
# SELECT FROM items WHERE function(column) IN (1, 2, 3)
|
|
20
|
-
|
|
21
|
-
for identity:
|
|
22
|
-
|
|
23
|
-
DB[:items].where{function(:column) =~ nil}
|
|
24
|
-
# SELECT FROM items WHERE function(column) IS NULL
|
|
25
|
-
|
|
26
|
-
and for matching (on MySQL/PostgreSQL):
|
|
27
|
-
|
|
28
|
-
DB[:items].where{function(:column) =~ /foo/i}
|
|
29
|
-
# SELECT FROM items WHERE function(column) ~* 'foo'
|
|
30
|
-
|
|
31
|
-
This new syntax makes more complex conditions simpler to express:
|
|
32
|
-
|
|
33
|
-
DB[:items].where{(function(:column) =~ 0) | (column =~ 1)}
|
|
34
|
-
# SELECT FROM items WHERE function(column) = 0 OR column = 1
|
|
35
|
-
|
|
36
|
-
compared to previous versions of Sequel:
|
|
37
|
-
|
|
38
|
-
DB[:items].where{Sequel.|({function(:column) => 0}, {:column => 1})}
|
|
39
|
-
|
|
40
|
-
On ruby 1.9+, you can also use SQL::GenericExpression#!~ to invert
|
|
41
|
-
the condition:
|
|
42
|
-
|
|
43
|
-
DB[:items].where{function(:column) !~ 0}
|
|
44
|
-
# SELECT FROM items WHERE function(column) != 0
|
|
45
|
-
|
|
46
|
-
DB[:items].where{function(:column) !~ [1,2,3]}
|
|
47
|
-
# SELECT FROM items WHERE function(column) NOT IN (1, 2, 3)
|
|
48
|
-
|
|
49
|
-
DB[:items].where{function(:column) !~ nil}
|
|
50
|
-
# SELECT FROM items WHERE function(column) IS NOT NULL
|
|
51
|
-
|
|
52
|
-
DB[:items].where{function(:column) !~ /foo/i}
|
|
53
|
-
# SELECT FROM items WHERE function(column) !~* 'foo'
|
|
54
|
-
|
|
55
|
-
This makes it simpler to write inverted conditions. Ruby 1.8
|
|
56
|
-
doesn't support overriding the !~ method, but you can still use the
|
|
57
|
-
unary ~ method to invert:
|
|
58
|
-
|
|
59
|
-
DB[:items].where{~(function(:column) =~ 0)}
|
|
60
|
-
|
|
61
|
-
* Database#add_named_conversion_proc has been added on PostgreSQL to
|
|
62
|
-
make it easier to add conversion procs by name instead of by OID:
|
|
63
|
-
|
|
64
|
-
DB.add_named_conversion_proc(:citext){|s| s}
|
|
65
|
-
|
|
66
|
-
* Database#full_text_search on PostgreSQL now supports :tsquery and
|
|
67
|
-
:tsvector options for using existing tsquery and/or tsvector
|
|
68
|
-
arguments, instead of assuming the arguments are query terms or
|
|
69
|
-
the text to be search.
|
|
70
|
-
|
|
71
|
-
= Other Improvements
|
|
72
|
-
|
|
73
|
-
* Database#transaction now works inside after_commit and
|
|
74
|
-
after_rollback hooks. Previously, it didn't work correctly as it
|
|
75
|
-
thought it was already inside the previously committed/rolled back
|
|
76
|
-
transaction.
|
|
77
|
-
|
|
78
|
-
* Sequel.pg_jsonb now returns JSONBOp instances instead of JSONOp
|
|
79
|
-
instances when passed other than Array or Hash.
|
|
80
|
-
|
|
81
|
-
* The tinytds adapter no longer tries to cancel a query on a closed
|
|
82
|
-
connection, which was causing an exception to be raised.
|
|
83
|
-
|
|
84
|
-
= Backwards Compatibility
|
|
85
|
-
|
|
86
|
-
* The default root name used in the JSON serializer is now demodulized
|
|
87
|
-
before being underscored. This changes the behavior when the model
|
|
88
|
-
is namespaced. For example, if the model class name is Mod::Model,
|
|
89
|
-
the previous default root name would be "mod/model", the new default
|
|
90
|
-
root name is "model".
|
|
91
|
-
|
|
92
|
-
* If you were calling =~ or !~ on SQL::GenericExpression objects and
|
|
93
|
-
expecting the default ruby behavior of returning nil for =~ and
|
|
94
|
-
true for !~, you'll have to update your code.
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* A csv_serializer plugin has been added, for serializing model
|
|
4
|
-
objects and datasets to CSV, or parsing CSV into a model
|
|
5
|
-
object or array of model objects. Behavior and API is similar to
|
|
6
|
-
the existing xml_serializer and json_serializer plugins.
|
|
7
|
-
|
|
8
|
-
* Sequel::MassAssignmentRestriction is now raised for mass assignment
|
|
9
|
-
errors in strict mode (the default). Previously the generic
|
|
10
|
-
Sequel::Error was used.
|
|
11
|
-
|
|
12
|
-
= Other Improvements
|
|
13
|
-
|
|
14
|
-
* On Ruby 1.9+, Sequel now uses condition variables instead of busy
|
|
15
|
-
waiting for connections in the threaded conection pools. This
|
|
16
|
-
can significantly decrease overhead when waiting for connections,
|
|
17
|
-
which can improve performance on machines that are compute
|
|
18
|
-
bottlenecked. This also makes the connection pool checkouts more
|
|
19
|
-
fair, reducing the chance that a request for a connection will
|
|
20
|
-
fail with a PoolTimeout when under heavy resource contention.
|
|
21
|
-
|
|
22
|
-
* Sequel now attempts to avoid hash allocations and rehashing in
|
|
23
|
-
performance sensitive code. This can speed up Dataset#clone,
|
|
24
|
-
Model#clone, and #Model#dup by about 60%, and speed up method
|
|
25
|
-
chains such as:
|
|
26
|
-
|
|
27
|
-
ds.select(:a).where(:a=>1).order(1)
|
|
28
|
-
|
|
29
|
-
by almost 20%.
|
|
30
|
-
|
|
31
|
-
* Symbol#to_proc is used instead of explicit blocks across the
|
|
32
|
-
the library, which should improve performance slightly on Ruby 1.9+.
|
|
33
|
-
|
|
34
|
-
* When Model#cancel_action is used in association before hooks,
|
|
35
|
-
Sequel will now return false if raise_on_save_failure = false,
|
|
36
|
-
instead of raising an exception. This mirrors the behavior
|
|
37
|
-
when Model#cancel_action is used inside model save hooks when
|
|
38
|
-
raise_on_save_failure = false.
|
|
39
|
-
|
|
40
|
-
* Dataset#to_hash and #to_hash_groups now work correctly on model
|
|
41
|
-
datasets when given a single array argument.
|
|
42
|
-
|
|
43
|
-
* The auto_validations plugin now works correctly on columns that
|
|
44
|
-
have a default value, but where the default value is not parseable
|
|
45
|
-
into a ruby object by the adapter.
|
|
46
|
-
|
|
47
|
-
* The tree plugin now correctly sets the reciprocal association
|
|
48
|
-
in the children association it creates.
|
|
49
|
-
|
|
50
|
-
* In the pg_array extension, if the :default value when creating a
|
|
51
|
-
column is set to a ruby array, Sequel will now convert it to a
|
|
52
|
-
PostgreSQL array.
|
|
53
|
-
|
|
54
|
-
* Sequel no longer adds a :max_length entry to the schema for
|
|
55
|
-
varchar(max) columns on Microsoft SQL Server.
|
|
56
|
-
|
|
57
|
-
* Adapters now are specified to set the :default schema entry for
|
|
58
|
-
columns to nil if the adapter can determine the :default is nil.
|
|
59
|
-
Adapters that ship with Sequel already did this, but previously
|
|
60
|
-
it was unspecified behavior.
|
|
61
|
-
|
|
62
|
-
* Sequel no longer silently ignores the :jdbc_properties Database
|
|
63
|
-
option in the jdbc adapter. Previously, it only used the
|
|
64
|
-
:jdbc_properties option if it was not able to connect without it.
|
|
65
|
-
|
|
66
|
-
* Bit types are now converted to boolean values in the ODBC adapter.
|
|
67
|
-
|
|
68
|
-
= Backwards Compatibility
|
|
69
|
-
|
|
70
|
-
* The db2, dbi, fdbsql, firebird, jdbc/fdbsql, informix, and openbase
|
|
71
|
-
adapters are now deprecated and will be removed in a future version
|
|
72
|
-
of Sequel.
|