New Features¶ ↑
-
On SQLite 3.33.0+, the UPDATE FROM syntax is now supported. This allows you to update one table based on a join to another table. The SQLite syntax is based on the PostgreSQL syntax, and the
Sequel
API is the same for both. You need to pass multiple tables to Dataset#from. The first table is the table to update, and the remaining tables are used to construct the UPDATE FROM clause:DB[:a, :b].where{{a[:c]=>b[:d]}}.update(:e=>'f') # UPDATE a SET e = 'f' FROM b WHERE (a.c = b.d)
Unlike PostgreSQL, SQLite does not support the deletion of joined datasets. Related to this, the following methods for testing database support for modifying joined datasets have been added:
-
supports_updating_joins?
-
supports_deleting_joins?
-
Other Improvements¶ ↑
-
The pg_interval and date_arithmetic extensions now support ActiveSupport 6.1.
-
Sequel
no longer issues method redefinition warnings in verbose mode. As Ruby 3 has dropped uninitialized instance variable warnings,Sequel
is now verbose warning free on Ruby 3.
Backwards Compatibility¶ ↑
-
Trying to truncate or insert into a joined dataset now correctly raises an exception even if the joined dataset supports updates.
-
The private Dataset#check_modification_allowed! method is now deprecated, and users (custom adapters) should now switch to one of the more specific methods introduced in this version:
-
check_insert_allowed!
-
check_update_allowed!
-
check_delete_allowed!
-