diff --git a/CHANGELOG b/CHANGELOG index d6b3445e7..0eabc0685 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -=== master +=== 5.86.0 (2024-11-01) * Support the :disable_dqs Database option in the sqlite adapter to disable treating double quoted values as strings (jeremyevans) (#2233) @@ -14,7 +14,7 @@ * Handle FROM tables that are SQL::DelayedEvaluation instances when trying to get primary key values after INSERT on PostgreSQL (tomasmiguez) (#2230, #2232) -=== 5.85.0 (2025-10-01) +=== 5.85.0 (2024-10-01) * Support json_table on PostgreSQL 17+ in the pg_json_ops extension (jeremyevans) diff --git a/doc/release_notes/5.86.0.txt b/doc/release_notes/5.86.0.txt new file mode 100644 index 000000000..fed2dce98 --- /dev/null +++ b/doc/release_notes/5.86.0.txt @@ -0,0 +1,62 @@ += New Features + +* The subset_conditions plugin now supports where_all and where_any + methods for combining existing subsets. It also adds + *_conditions methods for exclude method calls, in addition to + subset and where method calls: + + class Album < Sequel::Model + plugin :subset_conditions + + dataset_module do + where :released, Sequel::CURRENT_DATE <= :release_date + exclude :inactive, :active + + where_all(:inactive_released, :released, :inactive) + where_any(:inactive_or_released, :released, :inactive) + end + end + + Album.inactive_released.sql + # SELECT * FROM albums WHERE ((CURRENT_DATE <= release_date) AND NOT active) + + Album.inactive_or_released.sql + # SELECT * FROM albums WHERE ((CURRENT_DATE <= release_date) OR NOT active) + + Album.where(Album.inactive_conditions).sql + # => SELECT * FROM albums WHERE NOT active + + Album.exclude(Album.inactive_or_released_conditions).sql + # SELECT * FROM albums WHERE ((CURRENT_DATE > release_date) AND active) + + In addition to making code simpler, the where_all method improves + performance compared to defining a dataset method that uses a + method chain to call both methods, and the where_any method improves + performances even more significantly as it allows caching where + the alternative approach would not allow for caching. + +* The sqlite adapter now supports the :disable_dqs Database option, + to disable treating double quoted values as strings. As described + by the SQLite documentation, treating double quoted values as + strings instead of identifiers is a misfeature. This support + requires SQLite 3.29.0+ and sqlite3 gem version 1.4.3+. + += Other Improvements + +* On PostgreSQL, datasets using an SQL::DelayedEvaluation instance + as the table now support returning the primary key for inserts + and imports. + +* All jdbc adapters now use Ruby-style module naming instead of + Java-style package naming (e.g. Java::OrgPostgresqlUtil::PGobject + instead of org.postgresql.util.PGobject). This supports loading + the Java packages in separate classloaders. + +* The schema_dumper extension now uses colons instead of hashrockets + when using Ruby 3.4+ (following the Hash#inspect change in Ruby + 3.4.0-preview2). + += Backwards Compatibility + +* The schema_dumper change can break backwards compatibility for + tests that expect the hashrocket format, but only on Ruby 3.4+. diff --git a/lib/sequel/version.rb b/lib/sequel/version.rb index ce3338dc0..d258780f8 100644 --- a/lib/sequel/version.rb +++ b/lib/sequel/version.rb @@ -6,7 +6,7 @@ module Sequel # The minor version of Sequel. Bumped for every non-patch level # release, generally around once a month. - MINOR = 85 + MINOR = 86 # The tiny version of Sequel. Usually 0, only bumped for bugfix # releases that fix regressions from previous versions.