New Features
- A :preconnect Database option has been added, for automatically creating
the maximum number of connections to the database on instantiation. This is
useful when there is high latency for initial connection setup, where Sequel‘s usual approach of
connecting as needed can cause pauses at runtime.
- Database#sharded? has been added for checking whether the Database object
uses multiple servers.
- Dataset#server? has been added, for returning a cloned dataset associated
with the given server/shard if the dataset does not already have a server
set. This returns the receiver if the server has already been set or the
Database is not sharded.
Other Improvements
- Sequel now uses the correct
shard when deleting model instances. Previously, the correct shard was only
used in the unoptimized case, not in the optimized case.
- Sequel now uses the correct
shard when using Dataset#insert_select on PostgreSQL. This was first broken
in the 4.13.0 release.
- Sequel now correctly handles Sequel::SQL::Blob
instances used in bound variables in the postgres adapter. Previously this
resulted in duplicate apostrophes being used.
- When using the jdbc/sqlite3 adapter with jdbc-sqlite3 3.8.7, Sequel now handles date objects and
empty blobs correctly, working around bugs in the driver.
Backwards Compatibility
- In the update_or_create plugin, Model.update_or_create now always returns
the object. Previously it would not return the object if the object already
existed but no updates were necessary.