Thanks, Jeremy!! Your efforts are much appreciated, probably more than
you know.

On Jan 3, 3:47 pm, Jeremy Evans <[email protected]> wrote:
> Sequel 3.31.0 has been released and should be available on the gem
> mirrors.
>
> = New Features
>
> * The serialization plugin can now support custom serialization
>   formats, by supplying a serializer/deserializer pair of
>   callable objects.  You can also register custom deserializers
>   via Sequel::Plugins::Serialization.register_format, so that
>   they can be referenced by name.  Example:
>
>     Sequel::Plugins::Serialization.register_format(:reverse,
>       lambda{|v| v.reverse},
>       lambda{|v| v.reverse})
>     class User < Sequel::Model
>       serialize_attributes :reverse, :password
>     end
>
> * Dataset#import and #multi_insert now support a
>   :return=>:primary_key option.  When this option is used, the
>   methods return an array of primary key values, one for each
>   inserted row.  Usage of this option on MySQL requires that a
>   separate query be issued per row (instead of the single
>   query for all rows that MySQL would usually use).
>
> * PostgreSQL can now use Dataset#returning in conjunction with
>   import/multi_insert to set a custom column to return.
>
> * Microsoft SQL Server can now use Dataset#output in conjection with
>   import/multi_insert to set a custom column to return.
>
> * Dataset#import and #multi_insert now respect a :server option to
>   set the server/shard on which to execute the queries.
>   Additionally, options given to this method are also passed to
>   Dataset#transaction.
>
> * Dataset#insert_multiple now returns an array of inserted primary
>   keys.
>
> * Model.def_column_alias has been added to make it easy to create
>   alias methods for columns.  This is useful if you have a legacy
>   database and want to create friendly method names for the
>   underlying columns.  Note that this alias only affects the setter
>   and getter methods.  This does not affect the dataset level, so you
>   still need to use the actual column names in dataset filters.
>
> * many_to_one associations can now have the same name as the related
>   foreign key column, using the :key_column option.  Use of this
>   feature is not recommended, as it is much better to either rename
>   the column or rename the association.  Here's an example of usage:
>
>     # Example schema:
>     #  albums           artists
>     #   :id        /-->  :id
>     #   :artist --/      :name
>     #   :name
>     class Album < Sequel::Model
>       def_column_alias(:artist_id, :artist)
>       many_to_one :artist, :key_column=>:artist
>     end
>
> * The mock adapter can now mock out database types, by providing a
>   shared adapter name as the host (e.g. mock://postgres).  This
>   emulation is not perfect, but in most cases it allows you to see
>   what SQL Sequel would generate on a given database without needing
>   to install the required database driver.
>
> * Sequel now supports creating full text indexes on Microsoft SQL
>   Server.  Before using it, you must have previously setup a default
>   full text search catalog, and you need to provide a :key_index
>   option with an index name symbol.
>
> * Dataset#group_rollup and #group_cube methods have been added for
>   GROUP BY ROLLUP and GROUP BY CUBE support.  These features are in
>   a recent SQL standard, and they are supported to various degrees on
>   Microsoft SQL Server, DB2, Oracle, MySQL, and Derby.
>
> * Dataset#full_text_search on Microsoft SQL Server now supports
>   multiple search terms.
>
> * The jdbc adapter now supports a :login_timeout option, giving the
>   timeout in seconds.
>
> = Other Improvements
>
> * Dataset#exists can now be used with prepared statement
>   placeholders.
>
> * Dataset#full_text_search can now be used with prepared statement
>   placeholders on PostgreSQL, MySQL, and Microsoft SQL Server.
>
> * If tables from two separate schema are detected when parsing the
>   schema for a table on PostgreSQL, an error is now raised.
>   Previously, no error was raised, which led to weird errors later,
>   such as duplicate columns in a model's primary_key.
>
> * RETURNING is now supported with UPDATE/DELETE on PostgreSQL 8.2+.
>   Previously, Sequel only supported it on 9.1+, but PostgreSQL
>   introduced support for it in 8.2.
>
> * The shared postgres adapter now correctly handles the return value
>   for Dataset#insert if you provide a separate column array and value
>   array on PostgreSQL < 8.2.
>
> * Handle case in the PostgreSQL adapter where the server version
>   cannot be determined via a query.
>
> * H2 clob types are now treated as string instead of as blob.
>   Treating clob as blob breaks on H2, as it doesn't automatically
>   hex-unescape the input for clobs as it does for blobs.
>
> * Dataset#empty? now works correctly when the dataset has an offset
>   and offset support is being emulated.
>
> * The mock adapter no longer defaults to downcasing identifiers on
>   output.
>
> = Backwards Compatibility
>
> * Dataset#exists now returns a PlaceholderLiteralString instead of a
>   LiteralString, which could potentially break some code.  If you
>   would like a String returned, you can pass the returned object to
>   Dataset#literal:
>
>     dataset.literal(dataset.exists)
>
> * Dataset#from no longer handles :a__b__c___d as "a.b.c AS d".  This
>   was not the intended behavior, and nowhere else in Sequel is a
>   symbol treated that way.  Now, Dataset#from is consistent with the
>   rest of Sequel, using "a.b__c AS d".  This should only affect
>   people in very rare cases, as most databases don't use three level
>   qualified tables.  One exception is Microsoft SQL Server, which can
>   use three level qualified tables for cross-database access.
>
> * Previously, Dataset#insert_multiple returned an array of hashes, now
>   it returns an array of primary key values.
>
> * Dataset#EXRACT_CLOSE in the shared sqlite adapter has been renamed
> to
>   Dataset#EXTRACT_CLOSE.
>
> * Dataset::StoredProcedureMethods::SQL_QUERY_TYPE and
>   Dataset::ArgumentMapper::SQL_QUERY_TYPE constants have been removed,
>   as have related sql_query_type private methods.
>
> * The serialization plugin was significantly refactored.
>   Model.serialization_map now contains a callable object instead of a
>   Symbol, and Model.serialization_format has been removed.
>   Model.define_serialized_attribute_accessors private method now takes
>   two callable objects before the columns, instead of a single symbol.
>
> Thanks,
> Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en.

Reply via email to