Sequel v4.42.0 Release Notes

Release Date: 2017-01-01 // over 7 years ago
    • 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)