CHANGELOG

CHANGELOG
Last Update: 2020-04-01 08:28:09 -0700

5.31.0 (2020-04-01)

  • Fix alter_table drop_constraint :primary_key option on SQLite for non-integer primary keys (jeremyevans)

  • Add skip_saving_columns plugin, which supports columns to skip when saving, and skips generated columns by default (joeosburn, jeremyevans) (#1681, #1682)

  • Add support for creating partitioned tables in PostgreSQL 10+ using :partition_by and :partition_of options (jeremyevans)

  • Dump generated columns as generated columns when using the schema_dumper with :same_db option on PostgreSQL 12+ (jeremyevans) (#1680)

  • Ignore defaults for generated columns by default when using the schema dumper (jeremyevans) (#1680)

  • Include generated columns in schema on SQLite 3.31+ (jeremyevans)

  • Add :generated schema entry on PostgreSQL 12+ and SQLite 3.31+ for whether the columns is generated (jeremyevans)

  • Add association_lazy_eager_option plugin for supporting :eager option for association method (jeremyevans)

  • Add forbid_lazy_load plugin for forbidding lazy loading of associations, to help find N+1 issues (jeremyevans)

5.30.0 (2020-03-01)

  • Remove specs and old release notes from the gem to reduce gem size by over 40% (jeremyevans)

  • When using Database#transaction :retry_on, call :before_retry option if retrying even if :num_retries is nil (jcmfernandes) (#1678)

  • Support generated columns on SQLite 3.31+ using :generated_always_as and :generated_type options (jeremyevans)

5.29.0 (2020-02-01)

  • Recognize another disconnect error in the tinytds adapter (jeremyevans)

  • Fix verbose warning in postgres adapter when using prepared statements and recent versions of ruby-pg (jeremyevans)

  • Work correctly on Ruby 2.8+ by supporting second argument for initialize_clone (jeremyevans)

  • Add empty_failure_backtraces plugin for empty backtraces for ValidationFailed and HookFailed exceptions, much faster on JRuby (jeremyevans)

  • Add Dataset#json_serializer_opts to json_serializer plugin, allowing to set json_serializer options on a per-dataset basis (jeremyevans)

5.28.0 (2020-01-01)

  • Warn when calling Sequel::JDBC::Postgres::Dataset#with_fetch_size (jeremyevans) (#1665)

  • Add exclude_or_null extension, for filtering datasets where the condition is false or NULL (jeremyevans)

  • Add any_not_empty extension, for making Dataset#any? without a block mean !empty? (jeremyevans)

5.27.0 (2019-12-01)

  • Add Sequel::DEFAULT for a DEFAULT expression, useful for assigning to default values (jeremyevans)

  • Make Postgres::ArrayOp#join in pg_array_ops extension work correctly on PostgreSQL <9.1 (jeremyevans)

  • Make pg_enum extension work correctly on PostgreSQL 8.3-9.0 (jeremyevans)

  • Emulate FILTER clause for aggregate functions using CASE on databases not supporting it directly (jeremyevans)

  • Support ordering by NULLS FIRST/NULLS LAST without emulation on SQLite 3.30+ (jeremyevans)

5.26.0 (2019-11-01)

  • Recognize two additional foreign key constraint violation codes on MySQL 8.0.13+ (rianmcguire) (#1657)

  • Support table aliases for single-table INSERT statements on PostgreSQL 9.5+ (jeremyevans) (#1656)

  • Implement Sequel::Postgres::PGRange#hash so instances work correctly in hashes (jeremyevans) (#1648)

  • Make dirty plugin work correctly with typecast_on_load plugin (jeremyevans) (#1647)

  • Add support for :require_modification option when setting up nested_attributes (jeremyevans)

  • Add support for SQL/JSON path expressions to the pg_json_ops extension, supported by PostgreSQL 12+ (jeremyevans)

5.25.0 (2019-10-01)

  • Fix Sequel::SQL::NumericMethods#coerce to not raise NoMethodError if super method is not defined (jeremyevans) (#1645)

  • Allow setting a default for a column that already has a default on Microsoft SQL Server (jeremyevans)

  • Fix keyword argument separation warnings on Ruby master branch in csv_serializer plugin (jeremyevans)

  • Add association_multi_add_remove plugin for adding/removing multiple associated objects in a single method call (AlexWayfer, jeremyevans) (#1641, #1643)

  • Make sharding plugin integrate with server_block extension (jeremyevans)

5.24.0 (2019-09-01)

  • Add Database#skip_logging? private method designed for extensions to force query timing even if no logger is present (adam12) (#1640)

  • Allow a hostname specified in a defaults_file in the mysql2 adapter, by not explicitly setting :host (sapio-bdeamer) (#1638)

  • Convert all database array types to Ruby arrays in the jdbc adapter (jeremyevans)

  • Add static_cache_cache plugin for caching rows for static_cache models to a file to avoid database queries during model initialization (jeremyevans)

  • Add :cache_file plugin option to pg_auto_constraint_validations plugin, for caching metadata to a file for faster initialization (jeremyevans)

  • Support :unique_deferrable and :primary_key_deferrable column options (jeremyevans)

  • Support :generated_always_as column option on PostgreSQL 12+ (jeremyevans)

5.23.0 (2019-08-01)

  • Work around a bug on jdbc-sqlite3 3.27.2.1 when parsing schema for tables with columns with default values (jeremyevans)

  • Work around a bug in jdbc-sqlite3 3.27.2.1 when in Database#foreign_key_list in the jdbc/sqlite3 adapter (jeremyevans)

  • Make Dataset#execute* private methods respect explicit servers option, fixing Dataset#paged_each in the postgres adapter when sharding (jeremyevans) (#1632)

  • Handle instances of subclasses of core classes when wrapping objects in the pg_json extension (jeremyevans) (#1631)

  • Support :ansi Database option in the tinytds adapter (kenaniah) (#1629)

  • Support cross-database and linked servers when parsing schema on Microsoft SQL Server (kenaniah) (#1629)

  • Add insert_conflict plugin for automatically handling unique constraint conflicts when saving new model instances on PostgreSQL 9.5+ and SQLite 3.24.0+ (jeremyevans)

  • Avoid errors when parsing schema in the mock sqlite adapter (jeremyevans)

  • Avoid possible thread-safety issue in the timezones support (jeremyevans)

  • Handle offsets when typecasting an array or hash to datetime when Sequel.datetime_class = Time (jeremyevans)

  • Support Sequel.datetime_class = Time when using the named_timezones extension (jeremyevans)

5.22.0 (2019-07-01)

  • Fix Dataset#multi_insert and import with return: :primary_key on MSSQL when the dataset has a row_proc (jeremyevans) (#1627)

  • Support Dataset#with :materialized option on PostgreSQL 12 for [NOT] MATERIALIZED (jeremyevans)

  • Make Database#primary_key_sequence work on tables without serial sequences on PostgreSQL 12 (jeremyevans)

  • Support ruby 2.7+ startless ranges in the pg_range extension (jeremyevans)

  • Support ruby 2.7+ startless, endless ranges in filters, using an always true condition for them (jeremyevans)

  • Support ruby 2.7+ startless ranges in filters, using just a <= or < operator for them (jeremyevans)

5.21.0 (2019-06-01)

  • Recognize additional DatabaseLockTimeout errors in mysql and mysql2 adapters (jeremyevans)

  • Disallow eager_graph of ancestors and descendants associations when using the rcte_tree plugin (jeremyevans)

  • Make jdbc/mysql adapter work when using JRuby with Java 11 (jeremyevans)

  • Support window function options :window, :exclude, and :frame :type=>:groups, :start, and :end on SQLite 3.28.0+ (jeremyevans)

  • Make the server_block extension respect the :servers_hash Database option (jeremyevans)

  • Typecast string input for json/jsonb types as JSON strings instead of parsing as JSON in the pg_json extension when Database#typecast_json_strings is set to true (jeremyevans)

  • Wrap JSON primitives (string, number, true, false, nil) in the pg_json extension when Database#wrap_json_primitives is set to true (jeremyevans)

  • Convert the Database :timeout option to an integer in the sqlite adapter (jeremyevans) (#1620)

  • Improve performance in ado adapter using more efficient inner loop (jeremyevans)

  • Improve performance in ado adapter using faster callables for type conversion (jeremyevans)

  • Fix handling of decimal values in the ado adapter when using locales where the decimal separator is , and not . (jeremyevans) (#1619)

5.20.0 (2019-05-01)

  • Fix reversing of alter_table add_foreign_key when :type option is used (jeremyevans) (#1615)

  • Switch from using instance_exec to define_method for model associations and in some plugins (jeremyevans)

  • Fix Database#server_version when using mysql2 adapter with mysql driver on MariaDB 10+ database (v-kolesnikov) (#1614)

  • Make one_to_one setter method handle models that use joined datasets (jeremyevans) (#1612)

  • Make auto_validations plugin work with the class_table_inheritance plugin (jeremyevans) (#1611)

  • Avoid use of instance_exec for PlaceholderLiteralString#with_dataset (jeremyevans)

  • Recognize float unsigned database types as float (keeguon, jeremyevans) (#1609)

  • Support :savepoint options to Database#{after_commit,after_rollback} for making the hooks handle savepoints (jeremyevans)

  • Avoid use of instance_exec in association_dependencies plugin (jeremyevans)

  • Add pg_auto_constraint_validation_override to the pg_auto_constraint_validations plugin, for customizing columns and error message per constraint (jeremyevans)

  • Make Database#check_constraints on PostgreSQL also include constraints where the related columns are not known (jeremyevans)

5.19.0 (2019-04-02)

  • Use more optimized approach to merging hashes in ruby 2.5+ (jeremyevans)

  • Use SQLite extended result codes when using ruby-sqlite3 1.4.0+ (jeremyevans)

  • Recognize additional SQLite extended result codes in the shared sqlite adapter (jeremyevans)

  • Add Database#rename_enum_value to the pg_enum extension (AlexWayfer) (#1603)

  • Make Database#drop_table delete constraint validations metadata for that table if using the constraint_validations extension (jeremyevans)

  • Speed up row fetching in the sqlite adapter (jeremyevans)

  • Speed up row fetching and type conversion in the sqlanywhere adapter (jeremyevans)

5.18.0 (2019-03-01)

  • Use singleton .call methods on plain objects instead of procs/methods for faster type conversion (jeremyevans)

  • Add Sequel::SQL::Blob.call to avoid indirection when converting values from the database (jeremyevans)

  • Use while instead of each for inner loops in sqlite and jdbc adapters for better performance (jeremyevans)

  • Make after_initialize plugin not make the argument to Model.call optional (jeremyevans)

  • Allow Dataset#paged_each to be called without a block in the postgres and mysql2 adapters (jeremyevans)

  • Remove flow-control exceptions in connection_expiration and connection_validator extensions (jeremyevans)

  • Add throw_failures plugin for throwing ValidationFailed and HookFailed exceptions instead of raising them, up to 10x performance increase on JRuby (jeremyevans)

  • Support tzinfo 2 in addition to tzinfo 1 in the named_timezones extension (jeremyevans) (#1596)

5.17.0 (2019-02-01)

  • Support skip_auto_validations instance method in auto_validations plugin (oldgreen, jeremyevans) (#1592)

  • Support :preconnect_extensions Database option for loading extensions before :preconnect option (jeremyevans)

  • Avoid usage of Proc.new with implicit block as ruby 2.7+ deprecates this behavior (jeremyevans)

  • Allow Sequel[].as to be used for constructing aliases with eager_graph (e.g. Model.eager_graph(Sequel.as(:b))) (jeremyevans) (#1588)

5.16.0 (2019-01-02)

  • Convert integer columns to bigint columns when copying SQLite databases to other databases using bin/sequel -C (jeremyevans) (#1584)

  • Use nicer error messages for missing or empty migration directories (Lavode) (#1585)

  • Make alter table emulation work correctly in SQLite 3.26.0+ (jeremyevans) (#1582)

  • Do not unset new one_to_one associated objects' reciprocal associations before saving associated objects in the nested_attributes plugin (jeremyevans)

  • Do not validate new one_to_one associated objects twice when saving in the nested_attributes plugin (jeremyevans)

  • Fix :qualify_tables option to class_table_inheritance plugin to work correctly with subclasses of subclasses (benalavi) (#1581)

  • Make class_table_inheritance plugin use the schema cache instead of sending a query to get columns for tables (kenaniah) (#1580)

  • Remove loading of mysqlplus in the mysql adapter (jeremyevans)

  • Make mysql adapter work correctly on ruby 2.6+ (jeremyevans)

  • Add Database#rollback_on_exit to rollback transactions instead of committing them when exiting the transaction block (jeremyevans)

  • Enable window functions in SQLite 3.26.0+ (jeremyevans)

  • Do not override existing methods when creating Sequel::Model attribute getter/setter methods (jeremyevans) (#1578)

  • Use parentheses for expressions being subscripted (e.g. (array_agg(column))) (jeremyevans)

5.15.0 (2018-12-01)

  • Add :conn_str option in the postgres adapter for PostgreSQL connection strings, if the pg driver is used (graywolf) (#1572)

  • Add :qualify_tables option to class_table_inheritance plugin to automatically qualify subclass tables with superclass qualifier (benalavi) (#1571)

  • Access already allocated connections in a thread safe manner when checking out connections in the sharded threaded connection pool (jeremyevans)

  • Automatically support datasets using qualified tables in the class_table_inheritance plugin without having to use the :alias option (benalavi) (#1565)

  • Support rename_column without emulation on SQLite 3.25+ (jeremyevans)

  • Do not remove currently cached many_to_one associated objects when changing the related foreign key value from nil to non-nil (jeremyevans)

  • Do not validate new *_to_many associated objects twice when saving in the nested_attributes plugin (jeremyevans)

  • Add Model#skip_validation_on_next_save! for skipping validation on next save call (jeremyevans)

5.14.0 (2018-11-01)

  • Drop defaulting the :port option to 5432 in the postgres adapter, so that setting the :service option in :driver_options works (jeremyevans) (#1558)

  • Do not cache values for columns without parseable defaults when using :cache option in defaults_setter plugin (jeremyevans)

  • Emulate NULLS FIRST/LAST ordering on databases that do not natively support it (jeremyevans)

  • Do not modify boolean expressions created from string or array if string or array is modified (jeremyevans)

  • Make roots and roots_dataset dataset methods instead of class methods in the tree plugin (JelF) (#1554)

  • Do not cache dataset SQL if dataset uses subquery that cannot cache SQL (jeremyevans)

  • Make Model#=== work correctly for models with composite primary keys (jeremyevans)

  • Add Model#pk_equal? as a more descriptive name for Model#=== (AlexWayfer) (#1550)

  • Do not push down expression inversion in cases where it may result in incorrect behavior (e.g. ANY/SOME/ALL operators) (jeremyevans) (#1549)

5.13.0 (2018-10-01)

  • Support :single_value type in prepared statements (rintaun) (#1547)

  • Make Model.all in static_cache plugin accept a block (AlexWayfer, jeremyevans) (#1543)

  • Add constant_sql_override extension for overriding SQL used for constants such as CURRENT_TIMESTAMP (celsworth) (#1538)

  • Do not cache from_self datasets if options are given (jeremyevans)

5.12.0 (2018-08-31)

  • Make constraint_validations extension respect Database#constraint_validations_table setting (jeremyevans)

  • Make Sequel.extension load files from gems (jeremyevans)

  • Map clob prepared statement argument type to OCI8::CLOB in the oracle adapter (pipistrellka) (#1534)

  • Make Model.load_cache public in the static_cache plugin (AlexWayfer) (#1533)

  • Enable support for NOWAIT on MariaDB 10.3+ (jeremyevans)

  • Enable support for INTERSECT and EXCEPT on MariaDB 10.3+ (jeremyevans)

  • Make tactical_eager_loading plugin handle automatic eager loading for associated objects created by eager_graph (jeremyevans)

  • Cache eager_graph loader to speed up subsequent loads from the same dataset (jeremyevans)

  • Add caller_logging database extension to log callers before queries, useful during development (jeremyevans)

  • Add Database#call_procedure in the postgres adapter for calling PostgreSQL 11+ procedures (jeremyevans)

  • Add eager_graph_eager plugin for chaining eager association loads after eager_graph association loads (jeremyevans)

  • Support using Dataset#eager_graph in eager load callback for associations using join tables (jeremyevans)

  • Make Dataset#graph handle existing selections without determinable aliases by forcing a subselect (jeremyevans)

  • Freeze prepared statement arguments before returning the prepared statement (jeremyevans)

  • Refactor emulated prepared statement internals to use a placeholder literalizer (jeremyevans)

5.11.0 (2018-08-01)

  • Fix using the jdbc/sqlserver adapter on JRuby 9.2+ (jeremyevans)

  • Fix dumping schema for numeric/decimal columns with default values, broken starting in 5.9.0 (jeremyevans)

  • Recognize additional check constraint violations on certain versions of SQLite (jeremyevans)

  • Use cached model instances for Model.first calls without an argument or with a single integer argument in the static_cache plugin (AlexWayfer) (#1529)

  • Support ON CONFLICT clause for INSERT on SQLite 3.24+ (jeremyevans)

  • Support Dataset#window for WINDOW clause on MySQL 8 and SQLAnywhere (jeremyevans)

  • Enable window function support on SQLAnywhere (jeremyevans)

  • Support using a hash as a window function :frame option value, with support for ROWS/RANGE/GROUPS, numeric offsets, and EXCLUDE (jeremyevans)

  • Allow using set_column_default with a nil value to remove the default value for a column on MySQL when the column is NOT NULL (jeremyevans)

5.10.0 (2018-07-01)

  • Use input type casts when using the postgres adapter with pg 0.18+ to reduce string allocations for some primitive types used as prepared statement arguments (jeremyevans)

  • Assume local time if database timezone not specified when handling BC timestamps on JRuby 9.2.0.0 in the pg_extended_date_support extension (jeremyevans)

  • Fix parsing of timetz types in the jdbc/postgresql adapter (jeremyevans)

  • Make SQLTime.parse respect SQLTime.date and Sequel.application_timezone (jeremyevans)

  • Add :top as an option in the list plugin (celsworth) (#1526)

  • Fix Model#{ancestors,descendants,self_and_siblings} in the tree plugin when custom parent/children association names are used (jeremyevans) (#1525)

  • Treat read-only mode error as disconnect error on mysql and mysql2 adapters, for better behavior on AWS Aurora cluster (jeremyevans)

  • Don't use cached placeholder literalizers for in Dataset#{first,where_all,where_each,where_single_value} if argument is empty array or hash (jeremyevans)

  • Support :tablespace option when adding tables, indexes, and materialized views on PostgreSQL (jeremyevans)

  • Support :include option for indexes on PostgreSQL 11+ (jeremyevans)

  • Allow the use of IN/NOT IN operators with set returning functions for Sequel::Model datasets (jeremyevans)

  • Make many_to_pg_array associations in the pg_array_associations plugin work on PostgreSQL 11 (jeremyevans)

  • Only load strscan library in pg_array extension if it is needed (jeremyevans)

  • Don't remove related many_to_one associations from cache when setting column value to existing value for model instances that have not been persisted (jeremyevans) (#1521)

  • Support ruby 2.6+ endless ranges in the pg_range extension (jeremyevans)

  • Support ruby 2.6+ endless ranges in filters, using just a >= operator for them (jeremyevans)

5.9.0 (2018-06-01)

  • Support generated columns on MySQL 5.7+ and MariaDB 5.2+ (wjordan, jeremyevans) (#1517)

  • Add escaped_like extension for creation of LIKE expressions with placeholders in the pattern without access to a dataset (jeremyevans)

  • Modify jdbc adapter exception handling to work around ::NativeException deprecation in JRuby 9.2 (jeremyevans)

  • Work around broken BC date handling in JRuby 9.2.0.0 (jeremyevans)

  • Switch use of BigDecimal.new() to BigDecimal(), since the former is deprecated (jeremyevans)

  • Add Sequel::VERSION_NUMBER for easier version comparisons (jeremyevans)

  • Add Model.has_dataset? to determine if the model class has a dataset (AlexWayfer) (#1508)

  • Support use of LIKE with ANY function on PostgreSQL by avoiding unnecessary use of ESCAPE syntax (jeremyevans)

  • Disconnect connections left allocated by dead threads instead of returning the connections to the pool (jeremyevans)

  • Make both threaded connection pools avoid disconnecting connections while holding the connection pool mutex (jeremyevans)

  • Don't deadlock when disconnecting connections in the sharded_threaded connection pool when using connection_validator or connection_expiration extensions (jeremyevans)

  • Don't modify hash argument passed in Model.nested_attributes in the nested_attributes plugin (jeremyevans)

  • Avoid unnecessary hash creation in many places (jeremyevans)

  • Fix duplicate objects in nested associations when eager_graphing cascaded many_to_one=>one_to_many associations (jeremyevans)

5.8.0 (2018-05-01)

  • Don't mark SQLAnywhere as supporting WITH in INSERT statement (jeremyevans)

  • Support :search_path as a shard option on PostgreSQL (jeremyevans)

  • Add Dataset#nowait for raising a Sequel::DatabaseLockTimeout when a locked row is encountered, supported on PostgreSQL, MySQL 8+, MSSQL, and Oracle (jeremyevans)

  • Support Dataset#skip_locked on MySQL 8+ (jeremyevans)

  • Make schema modification methods in the pg_enum extension work on a frozen Database object (jeremyevans)

  • Support common table expressions and window functions on MySQL 8+ (jeremyevans)

  • Ignore Dataset#explain :extended option on MySQL 5.7+, since extended output is then the MySQL default (jeremyevans)

  • Work around REGEXP BINARY not working correctly on MySQL 8+ by using REGEXP_LIKE with the 'c' match_type (jeremyevans)

  • Force correct column order in Database#foreign_key_list on MySQL (jeremyevans)

  • Add ConnectionPool#connection_expiration_random_delay to connection_expiration extension, to avoid thundering herd if preallocating connections (hex2a, jeremyevans) (#1503)

  • Emit deprecation warning in association_proxies plugin if using filter on an association proxy, since behavior will change on ruby 2.6+ (utilum) (#1497)

  • Handle multiple add_constraint calls and a set_column_null call in the same alter_table block on SQLite (jeremyevans) (#1498)

  • Add Database#rename_enum to the pg_enum extension (AlexWayfer) (#1495)

  • Make tactical_eager_loading plugin respect the :allow_eager association option (jeremyevans) (#1494)

  • Add pg_auto_constraint_validations plugin, for automatically converting constraint violations to validation failures on PostgreSQL (jeremyevans)

  • Don't make Model#_valid? public in the error_splitter plugin (jeremyevans)

  • Support Database#indexes :include_partial option on PostgreSQL for including partial indexes (jeremyevans)

  • Include more diagnostic information in Database#error_info on PostgreSQL (jeremyevans)

  • Support Database#foreign_key_list :reverse option on PostgreSQL for parsing foreign key constraints that reference a given table (jeremyevans)

  • Add Database#check_constraints on PostgreSQL for parsing CHECK constraints (jeremyevans)

  • Don't use identity columns if :serial=>true or :type=>:serial|:bigserial column options are used (#1490) (jeremyevans)

  • Cache Dataset#select_all datasets if no arguments are given (jeremyevans)

  • Cache Dataset#returning datasets if no arguments are given (jeremyevans)

  • Cache Dataset#qualify datasets if no argument is given (jeremyevans)

  • Cache Dataset#lateral datasets (jeremyevans)

  • Cache Dataset#from_self datasets if no options are given (jeremyevans)

  • Cache Dataset#distinct datasets if no arguments or block is given (jeremyevans)

5.7.0 (2018-04-01)

  • Add Sequel.start_timer and .elapsed_seconds_since for more accurate elapsed time calculations on ruby 2.1+ (jeremyevans)

  • Run Dataset#with_sql_{all,each,first,single_value} using a cached dataset to avoid clobbering the dataset's columns (jeremyevans)

  • Add Database#convert_serial_to_identity on PostgreSQL 10.2+, which requires superuser access (jeremyevans)

  • Fix Database#server_version when connecting to PostgreSQL 10.1+ in certain cases (jeremyevans)

  • Free temporary clobs in the jdbc/oracle adapter to prevent a memory leak (jeremyevans) (#1482)

  • Treat prepared statement errors due to changing types as disconnect errors in the postgres adapter (jeremyevans) (#1481)

  • Add integer64 extension for treating Integer as a 64-bit integer when used as a generic type (jeremyevans)

  • Allow many_to_pg_array remove_all_* method cast appropriately to work correctly for non-integer types (jeremyevans)

  • Fix array_type for pg_array_to_many and many_to_pg_array associations in pg_array_associations plugin (jeremyevans)

  • Use identity columns instead of serial columns for primary keys on PostgreSQL 10.2+ (jeremyevans)

  • Support :identity option when creating columns on PostgreSQL 10+ to create identity columns (jeremyevans)

  • Add Dataset#overriding_{system,user}_value on PostgreSQL for use with PostgreSQL 10+ identity columns (jeremyevans)

  • Set :auto_increment schema entry correctly for PostgreSQL 10+ identity columns (jeremyevans)

5.6.0 (2018-03-01)

  • Dedup :db_type strings in schema hashes on Ruby 2.5+ (jeremyevans)

  • Make schema_caching extension work with :callable_default schema values (jeremyevans)

  • Freeze string valuse in hashes returned by Database#schema when using the schema_caching extension (jeremyevans)

  • Protect migration file loading with a mutex to not break when multiple threads load migration files simultaneously (jeremyevans)

  • Respect identifier mangling rules when renaming columns on Microsoft SQL Server (jeremyevans)

5.5.0 (2018-01-31)

  • Make Database#copy_table in the postgres adapter handle errors that occur while processing rows (jeremyevans) (#1470)

  • Cache results of changed_columns method in local variables in many places for better performance (jeremyevans)

  • Make modification_detection plugin not break column change detection for new objects (jeremyevans) (#1468)

  • Make pg_range extension set :ruby_default schema value for recognized range defaults (jeremyevans)

  • Make pg_interval extension set :ruby_default schema value for recognized interval defaults (jeremyevans)

  • Make pg_json extension set :callable_default schema value for empty json/jsonb array/hash defaults (jeremyevans)

  • Make pg_inet extension set :ruby_default schema value for recognized inet/cidr defaults (jeremyevans)

  • Make pg_hstore extension set :callable_default schema value for empty hstore defaults (jeremyevans)

  • Make pg_array extension set :callable_default schema value for recognized empty array defaults (jeremyevans) (#1466)

  • Make defaults_setter plugin prefer :callable_default db_schema values over :ruby_default db_schema values (jeremyevans)

  • Add defaults_setter plugin :cache option for caching default values returned (jeremyevans)

  • Freeze string values in hashes returned by Database#schema (jeremyevans)

5.4.0 (2018-01-04)

  • Enable fractional seconds in timestamps on DB2 (jeremyevans) (#1463)

  • Don't attempt to insert a second time if insert_select runs a query that doesn't return results, which can happen when triggers are used (jeremyevans)

  • Make Dataset#insert_select on PostgreSQL and MSSQL return false instead of nil if the INSERT query is sent to the database but returns no rows (jeremyevans)

  • Add index_caching extension for caching calls to Database#indexes (kenaniah, jeremyevans) (#1461)

  • Allow Database#indexes on SQLite, MSSQL, SQLAnywhere, and DB2 to handle SQL::Identifier values (jeremyevans)

  • Add pg_timestamptz extension for using timestamptz (timestamp with time zone) as the default timestamp type (jeremyevans)

  • Support Sequel.date_{add,sub} :cast option for setting cast type in date_arithmetic extension (jeremyevans)

  • Optimize Database#synchronize implementation on ruby 2.5+ (jeremyevans)

  • Add class_table_inheritance plugin :ignore_subclass_columns option (brianphillips) (#1459)

  • Make Dataset#to_xml in xml_serializer work with eager_graphed datasets (jeremyevans)

  • Make Dataset#to_json in json_serializer work with eager_graphed datasets (jeremyevans)

  • Cache Dataset#nullify dataset in the null_dataset extension (chanks) (#1456)

  • Add datetime_parse_to_time extension, for parsing timestamp strings without offsets using DateTime.parse.to_time (jeremyevans) (#1455)

  • Add WHERE NULL filter for Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans)

5.3.0 (2017-12-01)

  • Add logger to Database instance before making first connection in bin/sequel (jeremyevans)

  • Drop support for PostgreSQL <8.1 in Database#indexes (jeremyevans)

  • Add synchronize_sql extension, for checking out a connection around SQL generation (KJTsanaktsidis, jeremyevans) (#1451)

  • Deprecate Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans) (#1454)

  • Add DatasetModule#reverse for simpler use of descending orders (jeremyevans)

  • Support WITH clauses in subqueries on SQLite, but not in UNION/INTERSECT/EXCEPT (jeremyevans)

  • Hoist WITH clauses to INSERT statement level if INSERT subquery uses a CTE on MSSQL (jeremyevans)

  • Respect indislive and ignore indcheckxmin index attributes when using Database#indexes on PostgreSQL (jeremyevans)

  • Explicitly disallow use of server-side prepared statements when using Dataset#call in the jdbc/postgresql adapter (jeremyevans) (#1448)

  • Support common table expressions, window functions, dropping CHECK constraints, and recognizing CURRENT_DATE defaults on MariaDB 10.2+ (jeremyevans)

  • Make Database#reset_primary_key_sequence work on PostgreSQL 10+ (jeremyevans)

  • Support :connect_sqls Database option for easily issuing sql commands on all new connections (jeremyevans)

  • Support :extensions Database option for loading extensions when initializing, useful in connection strings (jeremyevans)

  • Avoid warning if trying to rollback after a commit or rollback raises an exception in the postgres adapter (jeremyevans)

  • Support Date::Infinity values in the pg_extended_date_support extension (jeremyevans)

5.2.0 (2017-10-27)

  • Fix type conversion for smallint unsigned and integer unsigned types on jdbc/mysql (jeremyevans) (#1443)

  • Add pg_extended_date_support extension, for handling infinite and BC dates/timestamps (jeremyevans)

  • Do not ignore existing @dataset instance variable when subclassing Sequel::Model (bjmllr) (#1435)

5.1.0 (2017-10-01)

  • Make jdbc/h2 and jdbc/hsqldb adapters respect :foreign_key_constraint_name option when adding new foreign key column (jeremyevans)

  • Do not issue unnecessary query for macaddr type oid when loading the pg_inet extension (jeltz) (#1423)

  • Make alter_table add_foreign_key with a column symbol reversible when using the :foreign_key_constraint_name option (jeremyevans) (#1422)

  • Do not raise an error if calling Model.freeze on a frozen model (jeremyevans) (#1421)

  • Make Database#copy_into in the jdbc/postgresql adapter handle multi-byte strings (ckoenig) (#1416)

  • Remove deprecated Model use_after_commit_rollback class and instance methods (jeremyevans)

  • Remove deprecated Model.allowed_columns method in the base model support (jeremyevans)

  • Remove deprecated Model.plugin_module_defined? private method (jeremyevans)

  • Remove deprecated support for Model#_before_validation private method (jeremyevans)

5.0.0 (2017-09-01)

  • Make bin/sequel -M option always use base 10 (jeremyevans)

  • Don't use savepoints when creating indexes inside a transaction on databases that don't support transactional schema modifications (jeremyevans) (#1407)

  • Support :if_not_exists option when creating indexes on PostgreSQL 9.5+ (DyegoCosta) (#1405)

  • Make threaded connection pools not block while connections are being made (jeremyevans)

  • SQL::Expression#clone and dup now return self, since all expressions should be frozen value objects (jeremyevans)

  • Don't create empty arrays for unused association callbacks (jeremyevans)

  • Cache association method name symbols instead of recomputing them everytime (jeremyevans)

  • Raise an exception if attempting to create a prepared statement using a dataset with a delayed evaluation (jeremyevans)

  • Make ConnectionPool#size thread safe by using the pool mutex (jeremyevans)

  • Use instance_exec instead of instance_eval when passing a block, to work with lambdas that accept no arguments (jeremyevans)

  • Freeze SQL::StringAgg instances in string_agg extension (jeremyevans)

  • Freeze SQL::DateAdd instances in date_arithmetic extension (jeremyevans)

  • Freeze SQL::Expression.comparison_attrs (jeremyevans)

  • Rename SQL::Subscript#f to expression, keeping f as an alias (jeremyevans)

  • Require the :pool_class Database option be a class to use a custom connection pool (jeremyevans)

  • Make the class_table_inheritance plugin raise an Error during update if any UPDATE query does not affect a single row (jeremyevans)

  • Change most send calls to public_send unless calling private methods is expected (jeremyevans)

  • Database schema and schema generator methods now return nil (jeremyevans)

  • Model#validates_unique in the validation helpers plugin now defaults to only checking on new or modified values (jeremyevans)

  • Deprecate Model#_before_validation (private_method), use Model#before_validation now (jeremyevans)

  • Always run before/after/around validation hooks when saving, even when not validating the object (jeremyevans)

  • Deprecate Model use_after_commit_rollback class and instance accessors (jeremyevans)

  • Deprecate Model.allowed_columns reader (jeremyevans)

  • Freeze internal constants that shouldn't be modified at runtime (jeremyevans)

  • Attempt to connect to the database immediately when creating the Database instance (jeremyevans)

  • Make association_pks plugin delay the setting of associated objects until the current object is saved by default (jeremyevans)

  • Joined datasets used as model datasets are now automatically wrapped in a subquery (jeremyevans)

  • Setting an invalid dataset for a model class now raises an exception by default (jeremyevans)

  • Getting all values for newly created models now happens before calling after_create, instead of after (jeremyevans)

  • Remove use of @was_new/@columns_updated instance variables when saving model objects (jeremyevans)

  • Disable symbol splitting by default (jeremyevans)

  • Make datasets frozen by default (jeremyevans)

  • Drop support for ruby 1.8.7, minimum now is 1.9.2 (jeremyevans)

  • Remove deprecated adapters, extensions, plugins, constants, and features (jeremyevans)

Older

See doc/CHANGELOG.old