# ANN: Sequel 2.8.0 Released

**URL:** <https://www.ruby-forum.com/t/ann-sequel-2-8-0-released/155007>\
**Category:** Ruby\
**Created:** [December 6, 2008, 4:40am UTC](https://www.ruby-forum.com/t/ann-sequel-2-8-0-released/155007 "2008-12-06T04:40:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nerdmaster](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/c68b51/32.png) [@nerdmaster](https://www.ruby-forum.com/u/nerdmaster)\
**Post date:** [December 6, 2008, 4:40am UTC](https://www.ruby-forum.com/t/ann-sequel-2-8-0-released/155007/1 "2008-12-06T04:40:54Z")

</div>

- Sequel provides thread safety, connection pooling and a concise DSL  
for constructing database queries and table schemas.
- Sequel also includes a lightweight but comprehensive ORM layer for  
mapping records to Ruby objects and handling associated records.
- Sequel supports advanced database features such as prepared  
statements, bound variables, master/slave configurations, and  
database sharding.
- Sequel makes it easy to deal with multiple records without having  
to break your teeth on SQL.
- Sequel currently has adapters for ADO, DB2, DBI, Informix, JDBC,  
MySQL, ODBC, OpenBase, Oracle, PostgreSQL and SQLite3.

Sequel 2.8.0 has been released and should be available on the gem  
mirrors. The 2.8.0 release adds numerous improvements:

## New Features

- Sequel now supports database stored procedures similar to its  
support for prepared statements. The API is as follows:

- The connection pool code can now remove connections if the  
adapter raises a Sequel::DatabaseDisconnectError indicating that  
the connection has been lost. When a query is attempted and  
the adapter raises this error, the connection pool removes the  
connection from the pool, and reraises the error. The Oracle and  
PostgreSQL adapters currently support this, and other adapters may  
support it in a future version.

- Whether to upcase or quote identifiers can now be set separately.  
Previously, upcasing was done when quoting except when using SQLite,  
PostgreSQL, or MySQL. Now, you can turn upcasing off while still  
quoting. This may be necessary if you are using a MSSQL database  
that has lower case table names that conflict with reserved words.  
It also allows you to uppercase identifiers when using SQLite,  
PostgreSQL, or MySQL, which may be beneficial in certain cases.

- Options are now supported when altering a columns type:

- Standard conforming strings are now turned on by default in the  
PostgreSQL adapter. This makes PostgreSQL not interpret backslash  
escapes. This is the PostgreSQL recommended setting, which will be  
the default setting in a future version of PostgreSQL. If you  
don’t want for force the use of standard strings, use:

- Sequel now raises an error if you attempt to use EXCEPT [ALL] or  
INTERSECT [ALL] on a database that doesn’t support it.

- Sequel now raises an error if you attempt to use DISTINCT ON with  
MySQL or Oracle, which don’t support it.

- A subadapter for the Progress RDBMS was added to the ODBC adapter.  
To connect to a Progress database, use the :db\_type=\>‘progress’  
option. This adapter targets Progress 9.

- The ODBC adapter now supports transactions.

- The MSSQL shared adapter now supports multi\_insert (for inserting  
multiple rows at once), and unicode string literals.

## Other Improvements

- There were many improvements related to using schemas in databases.  
Using schema-qualified tables should work in most if not all cases  
now. Model associations, getting the schema, joins, and many other  
parts of Sequel were modified to allow the use of schema-qualifed  
tables.

- You can now use literal strings with placeholders as well as  
subselects when using prepared statements. For example, the  
following all work now:

- Model#initialize received a few more micro-optimizations.

- Model#refresh now clears the changed columns as well as the  
associations.

- You can now drop columns inside a transaction when using SQLite.

- You can now submit multiple SQL queries at once in the MySQL  
adapter:

- You can now use AliasedExpressions directly in table names given  
to join\_table:

- Database#rename\_table once again works on PostgreSQL. It was  
broken in 2.7.0.

- The interval type is now treated as it’s own type. It was  
previously treated as an integer type.

- Subselects are now aliased correctly when using Oracle.

- UNION, INTERSECT, and EXCEPT statements now appear before ORDER  
and LIMIT on most databases. If you use these constructs, please  
test and make sure that they work correctly with your database.

- SQL EXCEPT clause now works on Oracle, which uses MINUS instead.

- Dataset#exists now returns a LiteralString, to make it easier to  
use.

- The Sequel.odbc\_mssql method was removed, as the odbc\_mssql adapter  
was removed in a previous version. Instead, use:

## Backwards Compatibilty

- The hash returned by Database#schema when no table name is provided  
uses quoted strings instead of symbols as keys. The hash has a  
default proc, so using the symbol will return the same value as  
before, but if you use each to iterate through the hash, the keys  
will be different. This was necessary to handle schema-qualified  
tables.

- Database#table\_exists? no longer checks the output of  
Database#tables. If the table exists in the schema, it returns  
true, otherwise, it does a query. This was necessary because  
table\_exists? accepts multiple formats for table names and  
Database#tables is an array of symbols.

- When getting the schema on PostgreSQL, the default schema is now  
used even if the :schema=\>nil option is used.

Thanks,  
Jeremy

- {Website}[[http://sequel.rubyforge.org](http://sequel.rubyforge.org)]
- {Source code}[[GitHub - jeremyevans/sequel: Sequel: The Database Toolkit for Ruby](http://github.com/jeremyevans/sequel)]
- {Bug tracking}[[Google Code Archive - Long-term storage for Google Code Project Hosting.](http://code.google.com/p/ruby-sequel/issues/list)]
- {Google group}[[http://groups.google.com/group/sequel-talk](http://groups.google.com/group/sequel-talk)]
- {RDoc}[[http://sequel.rubyforge.org/rdoc](http://sequel.rubyforge.org/rdoc)]

---

<div class="post-metadata">

**Author:** ![nerdmaster](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/c68b51/32.png) [@nerdmaster](https://www.ruby-forum.com/u/nerdmaster)\
**Post date:** [March 8, 2013, 1:18am UTC](https://www.ruby-forum.com/t/ann-sequel-2-8-0-released/155007/2 "2013-03-08T01:18:56Z")

</div>

Evans

Here is an ORM that works with MySQL

> **[.NET Data Access Layer](https://kellermansoftware.com/products/net-data-access-layer)**
>
> Dramatically reduce the development time when interacting with a database. LINQ/ORM for SQL Server, Oracle, MySql, Sqlite, VistaDB, Firebird, and MS Access.
