ANN: Sequel 4.3.0 Released

Sequel is a lightweight database access toolkit for Ruby.

  • Sequel provides thread safety, connection pooling and a concise
    DSL for constructing SQL queries and table schemas.
  • Sequel includes a comprehensive ORM layer for mapping records to
    Ruby objects and handling associated records.
  • Sequel supports advanced database features such as prepared
    statements, bound variables, stored procedures, savepoints,
    two-phase commit, transaction isolation, master/slave
    configurations, and database sharding.
  • Sequel currently has adapters for ADO, Amalgalite, CUBRID,
    DataObjects, DB2, DBI, Firebird, IBM_DB, Informix, JDBC, MySQL,
    Mysql2, ODBC, OpenBase, Oracle, PostgreSQL, SQLite3, Swift, and
    TinyTDS.

Sequel 4.3.0 has been released!

= New Features

  • The tree and rcte_tree plugins now support composite keys.

  • An error_sql Database extension has been added. This extension
    adds the DatabaseError#sql method, which should return the
    database query that caused the error. This is useful for
    drivers that don’t include the SQL used as part of the error
    message.

= Other Improvements

  • Empty blobs are now literalized correctly on MySQL.

  • Empty arrays are now literalized correctly on PostgreSQL <8.4.

  • In the pagination extension, Dataset#page_count is now 1 even if
    the dataset is empty. This fixes issues with last_page? and
    page_range returning bad values for empty datasets.

  • In the pagination extension, calling Dataset#each_page without a
    block now returns an Enumerator.

  • Dataset#qualify and Sequel.delay now work together, qualifying
    the object returned by the delayed evaluation.

  • Migrator.migrator_class is now a public method.

  • The PostgreSQL citext type is now recognized as a string.

  • Another disconnect error is now recognized in the jdbc/as400
    adapter.

  • Guides about using and creating Sequel extensions and model
    plugins have been added.

= Backwards Compatibility

  • If you were expecting Dataset#page_count on a empty paginated
    dataset to return 0, you need to update your code.

Thanks,
Jeremy