All Versions
Latest Version
Avg Release Cycle
30 days
Latest Release
17 days ago

Changelog History
Page 7

  • v4.42.0 Changes

    January 01, 2017
    • Handle eager load callbacks correctly for one_to_one associations with orders or offsets when window functions are not supported (jeremyevans)

    • Raise Sequel::Error if using an :eager_limit dataset option when eager loading a singular association (jeremyevans)

    • Replace internal uses of Dataset#select_more with #select_append to save a method call (jeremyevans)

    • Make Dataset#order_append the primary method, and #order_more the alias, for similarity to #select_append and #select_more (jeremyevans)

    • Replace internal uses of Dataset#filter with #where to save a method call (jeremyevans)

    • Do not set :auto_increment in the schema information for integer columns that are part of a composite primary key on SQLite (jeremyevans)

    • 👉 Use autoincrement setting on integer primary key columns when emulating table modification methods on SQLite (thenrio, jeremyevans) (#1277, #1278)

    • 👉 Make the pagination extension work on frozen datasets (jeremyevans)

    • 🔌 Make Dataset#server work for frozen model datasets using the sharding plugin (jeremyevans)

    • 👉 Make Dataset#nullify in the null_dataset extension work on frozen datasets (jeremyevans)

    • 👉 Make Model#set_server work when using a frozen model dataset (jeremyevans)

    • 👉 Make Dataset#ungraphed work on a frozen model dataset (jeremyevans)

    • ➕ Add Dataset#with_{autoid,fetch,numrows} to the mock adapter, returning cloned datasets with the setting changed (jeremyevans)

    • 📜 Make looser_typecasting extension handle the strict BigDecimal parsing introduced in ruby 2.4rc1 (jeremyevans)

    • Make Database#{db,opts}= in the sequel_3_dataset_methods extension raise for frozen datasets (jeremyevans)

    • Speed up repeated calls to Dataset#{interval,range} for frozen datasets using a cached placeholder literalizer (jeremyevans)

    • Speed up repeated calls to Dataset#get with a single argument for frozen datasets using a cached placeholder literalizer (jeremyevans)

    • Speed up repeated calls to Dataset#{first,last} with arguments/blocks for frozen datasets using a cached placeholder literalizer (jeremyevans)

    • Speed up repeated calls to Dataset#{avg,min,max,sum} for frozen datasets using a cached placeholder literalizer (jeremyevans)

    • Cache dataset returned by Dataset#skip_locked for frozen datasets (jeremyevans)

    • ⚡️ Cache dataset returned by Dataset#for_update for frozen datasets (jeremyevans)

    • Cache dataset returned by Dataset#un{filtered,grouped,limited,ordered} for frozen datasets (jeremyevans)

    • Cache dataset returned by Dataset#reverse (no args) for frozen datasets (jeremyevans)

    • Cache dataset returned by Dataset#invert for frozen datasets (jeremyevans)

    • Speed up repeated calls to Dataset#count with an argument or block for frozen datasets using a cached placeholder literalizer (jeremyevans)

    • Using :on_duplicate_columns=>:warn Database option with duplicate_columns_handler now prepends file/line to the warning message (jeremyevans)

    • 0️⃣ Move identifier mangling code to identifier_mangling extension, load by default unless using :identifier_mangling=>false Database option (jeremyevans)

    • 👍 Allow Dataset#with_extend to accept a block and create a module with that block that the object is extended with (jeremyevans)

    • Speed up repeated calls to with_pk on the same frozen model dataset using a cached placeholder literalizer (jeremyevans)

    • ➕ Add dataset_module methods such as select and order that define dataset methods which support caching for frozen datasets (jeremyevans)

    • Cache subset datasets if they don't use blocks or procs for frozen model datasets (jeremyevans)

    • Cache intermediate dataset used in Dataset#{last,paged_each} for frozen model datasets without an order (jeremyevans)

    • Cache dataset returned by Dataset#naked for frozen datasets (jeremyevans)

    • Cache intermediate dataset used in Dataset#last (no args) for frozen datasets (jeremyevans)

    • Cache intermediate dataset used in Dataset#first (no args) and #single_record for frozen datasets (jeremyevans)

    • Cache intermediate dataset used in Dataset#empty? for frozen datasets (jeremyevans)

    • Cache intermediate dataset used in Dataset#count (no args) for frozen datasets (jeremyevans)

    • Warn if :conditions option may be unexpectedly ignored during eager_graph/association_join (jeremyevans) (#1272)

    • Cache SELECT and DELETE SQL for most frozen datasets (jeremyevans)

    • 0️⃣ Freeze most SQL::Expression objects and internal state by default (jeremyevans)

    • Freeze Dataset::PlaceholderLiteralizer and Dataset::PlaceholderLiteralizer::Argument instances (jeremyevans)

    • Freeze most dataset opts values to avoid unintentional modification (jeremyevans)

    • Add Dataset#with_convert_smallint_to_bool on DB2, returning a clone with convert_smallint_to_bool set (jeremyevans)

    • 💎 Make Dataset#freeze actually freeze the dataset on ruby 2.4+ (jeremyevans)

    • Avoid using instance variables other than @opts for dataset data storage (jeremyevans)

    • ➕ Add freeze_datasets extension, making all datasets for a given Database frozen (jeremyevans)

    • ♻️ Refactor prepared statement internals, using opts instead of instance variables (jeremyevans)

    • 👯 Model.set_dataset now operates on a clone of the dataset given instead of modifying it, so it works with frozen datasets (jeremyevans)

  • v4.41.0 Changes

    December 01, 2016
    • Add Dataset#with_mssql_unicode_strings on Microsoft SQL Server, returning a clone with mssql_unicode_strings set (jeremyevans)

    • Add Dataset#with_identifier_output_method, returning a clone with identifier_output_method set (jeremyevans)

    • Add Dataset#with_identifier_input_method, returning a clone with identifier_input_method set (jeremyevans)

    • Add Dataset#with_quote_identifiers, returning a clone with quote_identifiers set (jeremyevans)

    • ➕ Add Dataset#with_extend, returning a clone extended with given modules (jeremyevans)

    • Add Dataset#with_row_proc, returning a clone with row_proc set (jeremyevans)

    • Support use of SQL::AliasedExpressions as Model#to_json :include option keys in the json_serializer plugin (sensadrome) (#1269)

    • Major improvements to type conversion in the ado adapter (vais, jeremyevans) (#1265)

    • Avoid memory leak in ado adapter by closing result sets after yielding them (vais, jeremyevans) (#1259)

    • Fix hook_class_methods plugin handling of commit hooks (jeremyevans)

    • 👉 Make association dataset method correctly handle cases where key fields are nil (jeremyevans)

    • 👻 Handle pure java exceptions that don't support message= when reraising the exception in the jdbc adapter (jeremyevans)

    • Add support for :offset_strategy Database option on DB2, with :limit_offset and :offset_fetch values, to disable OFFSET emulation (#1254) (jeremyevans)

    • ✂ Remove deprecated support for using Bignum class as a generic type (jeremyevans)

  • v4.40.0 Changes

    October 28, 2016
    • 🔌 Make column_select plugin not raise an exception if the model's table does not exist (jeremyevans)

    • 🔌 Make dataset_associations plugin correctly handle (many|one)_through_many associations with single join table (jeremyevans) (#1253)

    • ➕ Add s extension, with adds Sequel::S module that includes private #S method for calling Sequel.expr, including use as refinement (jeremyevans)

    • Add symbol_as and symbol_as_refinement extensions so that is treated as, :alias) (jeremyevans)

    • Add symbol_aref and symbol_aref_refinement extensions so that :table[:column] is treated as Sequel.qualify(:table, :column) (jeremyevans)

    • ➕ Add Sequel.split_symbols=, to support the disabling of splitting symbols with double/triple underscores (jeremyevans)

    • 👉 Make SQL::QualifiedIdentifier convert SQL::Identifier arguments to strings, fixing Sequel[:schema][:table] usage in schema methods (jeremyevans)

    • Do not attempt to combine non-associative operators (jeremyevans) (#1246)

    • Automatically add NOT NULL to columns when adding primary keys if the database doesn't handle it (jeremyevans)

    • 🔌 Make prepared_statements plugin correctly handle lookup on joined datasets (jeremyevans) (#1244)

    • 👉 Make Database#tables with :qualify=>true option handle table names with double underscores correctly (jeremyevans) (#1241)

    • ➕ Add SQL::Identifier#[] and SQL::QualifiedIdentifier#[] for creating qualified identifiers (jeremyevans)

    • Add support for Dataset#insert_conflict :conflict_where option, for a predicate to use in ON CONFLICT clauses (chanks) (#1240)

    • Freeze Dataset::NON_SQL_OPTIONS, add private Dataset#non_sql_options, fixing thread safety issues during require (jeremyevans)

    • ⏪ Make the callable returned by Database#rollback_checker thread safe (jeremyevans)

    • Make lazy_attributes and dataset_associations plugins work if insert_returning_select plugin is loaded before on model with no dataset (jeremyevans)

  • v4.39.0 Changes

    October 01, 2016
    • ⏪ Make active_model plugin use rollback_checker instead of after_rollback hook (jeremyevans)

    • ➕ Add Database#rollback_checker, which returns a proc that returns whether the in progress transaction is rolled back (jeremyevans)

    • Add Sequel::Database.set_shared_adapter_scheme to allow external adapters to support the mock adapter (jeremyevans)

    • Make hook_class_methods plugin not use after commit/rollback model hooks (jeremyevans)

    • 👌 Support add_column :after and :first options on MySQL (AnthonyBobsin, jeremyevans) (#1234)

    • 👌 Support ActiveSupport 5 in pg_interval extension when weeks/hours are used in ActiveSupport::Duration objects (chanks) (#1233)

    • 👌 Support IntegerMigrator :relative option, for running only the specified number of migrations up or down (jeremyevans)

    • ⚡️ Make the touch plugin also touch associations on create in addition to update and delete (jeremyevans)

    • Add :allow_manual_update timestamps plugin option for not overriding a manually set update timestamp (jeremyevans)

    • ➕ Add Sequel.[] as an alias to Sequel.expr, for easier expression creation (jeremyevans)

    • Add PostgreSQL full_text_search :to_tsquery=>:phrase option, for using PostgreSQL 9.6+ full text search phrase searching (jeremyevans)

    • Add JSONBOp#insert in pg_json_ops extension, for jsonb_insert support on PostgreSQL 9.6+ (jeremyevans)

    • Support add_column :if_not_exists option on PostgreSQL 9.6+ (jeremyevans)

  • v4.38.0 Changes

    September 01, 2016
    • 👌 Support :driver_options option when using the postgres adapter with pg driver (jeremyevans)

    • ⏪ Don't use after commit/rollback database hooks if the model instance methods are not overridden (jeremyevans)

    • ➕ Add SQL::NumericMethods#coerce, allowing code such as Sequel.expr{1 - x} (jeremyevans)

    • Support ** operator for exponentiation on expressions, similar to +, -, *, and / (jeremyevans)

    • ➕ Add to set the date used for SQLTime instances (jeremyevans)

  • v4.37.0 Changes

    August 01, 2016
    • ➕ Add support for regular expression matching on Oracle 10g+ using REGEXP_LIKE (johndcaldwell) (#1221)

    • Recognize an additional disconnect error in the postgres adapter (jeremyevans)

    • 🚚 Make connection pool remove connections for disconnect errors not raised as DatabaseDisconnectError (jeremyevans)

    • 👌 Support mysql2 0.4+ native prepared statements and bound variables (jeremyevans)

    • ➕ Add Database#values for VALUES support on SQLite 3.8.3+ (jeremyevans)

    • 👌 Support create_view :columns option on SQLite 3.9.0+ (jeremyevans)

    • Make migration reverser handle alter_table add_constraint using a hash as the first argument (soupmatt) (#1215)

    • 👉 Make ASTTransformer handle Sequel.extract (jeremyevans) (#1213)

  • v4.36.0 Changes

    July 01, 2016
    • 🗄 Deprecate use of Bignum class as generic type, since the behavior will change in ruby 2.4 (jeremyevans)

    • Don't hold connection pool mutex while disconnecting connections (jeremyevans)

    • Don't hold references to disconnected connections in the connection_validator extension (jeremyevans)

    • Don't overwrite existing connection_validation_timeout when loading connection_validator extension multiple times (jeremyevans)

    • ➕ Add connection_expiration extension, for automatically removing connections open for too long (pdrakeweb) (#1208, #1209)

    • 🖐 Handle disconnection errors raised during string literalization in mysql2 and postgres adapters (jeremyevans)

    • ➕ Add string_agg extension for aggregate string concatenation support on many databases (jeremyevans)

    • ➕ Add SQL::Function#order for ordered aggregate functions (jeremyevans)

    • 👌 Support operator validation in constraint_validations for <, <=, >, and >= operators with string and integer arguments (jeremyevans)

    • Make validates_operator validation consider nil values invalid unless :allow_nil or similar option is used (jeremyevans)

    • Close cursors for non-SELECT queries in the oracle adapter after execution, instead of waiting until GC (jeremyevans) (#1203)

    • ➕ Add :class_namespace association option for setting default namespace for :class option given as symbol/string (jeremyevans)

    • Add Sequel::Model.cache_anonymous_models accessor for changing caching on a per-model basis (jeremyevans)

    • ➕ Add Sequel::Model.def_Model for adding a Model() method to a module, for easier use of namespaced models (jeremyevans)

    • ➕ Add Sequel::Model::Model() for creating subclasses of Sequel::Model subclasses, instead of just Sequel::Model itself (jeremyevans)

  • v4.35.0 Changes

    June 01, 2016
    • Add :headline option to PostgreSQL Dataset#full_text_search for adding an extract of the matched text to the SELECT list (jeremyevans)

    • ⏪ Make :rollback=>:always inside a transaction use a savepoint automatically if supported (jeremyevans) (#1193)

    • Recognize bool type as boolean in the schema dumper (jeremyevans) (#1192)

    • Make Dataset#to_hash and #to_hash_groups work correctly for model datasets doing eager loading (jeremyevans)

    • ➕ Make delay_add_association plugin handle hashes and primary keys passed to add_* association methods (jeremyevans) (#1187)

    • 💎 Treat :Bignum as a generic type, to support 64-bit integers on ruby 2.4+, where Bignum == Integer (jeremyevans)

    • ➕ Add server_logging extension for including server/shard information when logging queries (jeremyevans)

    • Add Database#log_connection_info, for including connection information when logging queries (jeremyevans)

    • ➕ Add Dataset#skip_locked for skipping locked rows on PostgreSQL 9.5+, MSSQL, and Oracle (jeremyevans)

    • 👍 Allow Sequel::Model#lock! to accept an optional lock style (petedmarsh) (#1183)

    • ➕ Add sql_comments extension for setting SQL comments on queries (jeremyevans)

    • 👉 Make Postgres::PGRange#cover? handle empty, unbounded, and exclusive beginning ranges (jeremyevans)

    • 🛠 Fix frozen string literal issues on JRuby (jeremyevans)

    • Allow json_serializer :include option with cascaded values to work correctly when used with association_proxies (jeremyevans)

  • v4.34.0 Changes

    May 01, 2016
    • Add support for :dataset_associations_join association option to dataset_associations plugin, for making resulting datasets have appropriate joins (jeremyevans)

    • 🌲 Log server connection was attempted to in PoolTimeout exception messages in sharded connection pool (jeremyevans)

    • 🌲 Log Database :name option in PoolTimeout exception messages (bigkevmcd, jeremyevans) (#1176)

    • Add duplicate_columns_handler extension, for raising or warning if a dataset returns multiple columns with the same name (TSMMark, jeremyevans) (#1175)

    • 👌 Support registering per-Database custom range types in the pg_range extension (steveh) (#1174)

    • 👌 Support :preconnect=>:concurrently Database option for preconnecting in separate threads (kch, jeremyevans) (#1172)

    • Make prepared_statements_safe plugin work correctly with CURRENT_DATE/CURRENT_TIMESTAMP defaults (jeremyevans) (#1168)

    • ➕ Add validates_operator validation helper (petedmarsh) (#1170)

    • Recognize additional unique constraint violation on Microsoft SQL Server (jeremyevans)

    • Add :hash option to Dataset#(select|to)_hash(_groups)? methods for choosing object to populate (mwpastore) (#1167)

  • v4.33.0 Changes

    April 01, 2016
    • 🖐 Handle arbitrary objects passed as arguments to the association method (jeremyevans) (#1166)

    • 🖐 Handle array with multiple columns as Dataset#insert_conflict :target value on PostgreSQL (chanks) (#1165)

    • ➕ Add Database#transaction :savepoint=>:only option, for only creating a savepoint if already inside a transaction (jeremyevans)

    • Make Database#sequence_for_table on Oracle handle cases where the schema for a table cannot be determined (jeremyevans)

    • The boolean_readers, boolean_subsets, and class_table_inheritance plugins no longer do blind rescues (jeremyevans) (#1162)

    • Add Model.require_valid_table setting, if set to true doesn't swallow any errors for invalid tables (jeremyevans)

    • Creating model classes inside a transaction when the table doesn't exist no longer rolls back the transaction on PostgreSQL (jeremyevans) (#1160)

    • Sequel::Model no longer swallows many errors when subclassing or setting datasets (jeremyevans) (#1160)

    • 🖐 Handle altering column NULL settings for varchar(max) and text columns on MSSQL (Ilja Resch)

    • ✂ Remove Sequel.firebird and Sequel.informix adapter methods (jeremyevans)

    • 👉 Make graph_each extension handle result set splitting when using Dataset#first (jeremyevans)

    • 👍 Allow raising Sequel::ValidationFailed and Sequel::HookFailed without an argument (jeremyevans)

    • 👍 Allow schema_dumper to handle :qualify=>true option on PostgreSQL (jeremyevans)

    • 👍 Allow foreign_key schema method to handle SQL::Identifier and SQL::QualifiedIdentifier as 2nd argument (jeremyevans)