New Features
- Sequel now has vastly improved
support for Microsoft Access.
- Sequel now supports the CUBRID
database, with a cubrid adapter that uses the cubrid gem, and a jdbc/cubrid
adapter for accessing CUBRID via JDBC on JRuby.
- The association_pks plugin now supports composite keys.
- Database#transaction now accepts a :disconnect=>:retry option, in which
case it will automatically retry the block if it detects a disconnection.
This is potentially dangerous, and should only be used if the entire block
is idempotent. There is also no checking against an infinite retry loop.
- SQL::CaseExpression#with_merged_expression has been added, for converting a
CaseExpression with an associated expression to one without an associated
expression, by merging the expression into each condition.
Other Improvements
- Sequel now quotes
arguments/columns in common table expressions.
- Sequel now handles nil values
correctly in the pg_row extension.
- Sequel::Postgres::HStore
instances can now be marshalled.
- Sequel now uses clob for String :text=>true types on
databases that don‘t support a text type.
- On PostgreSQL, Sequel now quotes
channel identifier names when using LISTEN/NOTIFY.
- On PostgreSQL, Sequel now
correctly handles the case where named type conversion procs have been
added before the Database object is instantiated.
- On DB2, Sequel now explicitly
sets NOT NULL for unique constraint columns instead of foreign key columns.
DB2 does not allow columns in unique constraints to be NULL, but does allow
foreign key columns to be NULL.
- In the oracle adapter, clob values are now returned as ruby strings upon
retrieval.
- Sequel now detects more types of
disconnections in the postgres, mysql, and mysql2 adapters.
- If a database provides a default column value that isn‘t a ruby
string, it is used directly as the ruby default, instead of causing the
schema parsing to fail.
Backwards Compatibility
- Code using Sequel‘s oracle
adapter that expected clob values to be returned as OCI8::CLOB instances
needs to be modified to work with ruby strings.
- Because Sequel now quotes column
names in common table expressions, those names are now case sensitive,
which could break certain poorly coded queries. Similar issues exist with
the quoting of channel identifier names in LISTEN/NOTIFY on PostgreSQL.
- The private Database#requires_return_generated_keys? method has been
removed from the jdbc adapter. Custom jdbc subadapters relying on this
method should override the private Database#execute_statement_insert method
instead to ensure that RETURN_GENERATED_KEYS is used for insert statements.
- The private Dataset#argument_list and argument_list_append methods have
been removed.