Cool! Now upgrades!

I've updated merb_sequel: http://github.com/pk/merb_sequel/

to work with the Sequel 3.x and 2.x.

Pavel

On May 4, 6:37 pm, Jeremy Evans <[email protected]> wrote:
> Sequel 3.0.0 has been released and should be available on the gem
> mirrors.  The 3.0.0 release adds numerous improvements:
>
> Deprecated Methods/Features Removed
> -----------------------------------
>
> Methods and features that were deprecated in 2.12.0 have been removed
> in 3.0.0.  Many features were moved into plugins or extensions, so in
> many cases you just need to require an extension or use Model.plugin
> and not make any changes to your code.  See the 2.12.0 release notes
> for the list of methods/features deprecated in 2.12.0.
>
> If you are upgrading from a previous 2.x release, please upgrade to
> 2.12.0 first, fix your code to remove all deprecation warnings, and
> then upgrade to 3.0.0.
>
> New Adapter
> -----------
>
> * Sequel now has an Amalgalite adapter.  Amalgalite is a ruby
>   extension that embeds SQLite without requiring a separate SQLite
>   installation.  The adapter is functionality complete but
>   significantly slower than the native SQLite adapter.
>
> New Features
> ------------
>
> * The JDBC, PostgreSQL, MySQL, and SQLite adapters all now have a
>   Database#indexes method that returns indexes for a given table:
>
>     DB.indexes(:songs)
>     => {:songs_name_index=>{:unique=>true, :columns=>[:name]},
>         :songs_lyricid_index=>{:unique=>false, :columns=>[:lyricid]}}
>
> * A schema_dumper extension was added to Sequel.  It supports dumping
>   the schema of a table (including indexes) as a string that can be
>   evaluated in the context of a Database object to create the table.
>   It also supports dumping all tables in the database as a string
>   containing a Migration subclass that will rebuild the database.
>
>     require 'sequel/extensions/schema_dumper'
>     DB.dump_table_schema(:table)
>     DB.dump_schema_migration
>     DB.dump_schema_migration(:same_db=>true)
>     DB.dump_schema_migration(:indexes=>false)
>     DB.dump_indexes_migration
>
>   The :same_db option causes Sequel to not translate column types
>   to generic column types.  By default, the migration created will
>   use generic types so it will run on other databases.  However, if
>   you only want to support a single database, using the :same_db
>   option will make the migration use the exact database type parsed
>   from the database.
>
>   The :indexes=>false option causes indexes not be included in the
>   migration.  The dump_indexes_migration can be used to create a
>   separate migration with the indexes.  This can be useful if you
>   plan on loading a lot of data right after creating the tables,
>   since it is faster to add indexes after the data has been added.
>
> * Using options with the generic database types is now supported to
>   a limited extent.  For example, the following code now works:
>
>     DB.create_table(:table) do
>       String :a, :size=>50               # varchar(50)
>       String :b, :text=>true             # text
>       String :c, :fixed=>true, :size=>30 # char(30)
>       Time :ts                           # timestamp
>       Time :t, :only_time=>true          # time
>     end
>
> * Using Dataset#filter and related methods with multiple arguments
>   now works much more intuitively:
>
>     # 2.12.0
>     dataset.filter(:a, :b=>1) # a IS NULL AND (b = 1) IS NULL
>     # 3.0.0
>     dataset.filter(:a, :b=>1) # a AND b = 1
>
> * You can now create temporary tables by passing the :temp=>true
>   option to Database#create_table.
>
> * The Oracle shared adapter now supports emulation of
>   autoincrementing primary keys by creating a sequence and a trigger,
>   similar to how the Firebird adapter works.
>
> * The Database#database_type method was added that returns a symbol
>   specifying the database type being used.  This can be different
>   than Database.adapter_scheme if you are using an adapter like
>   JDBC that allows connecting to multiple different types of
>   databases.
>
> * Database#drop_index and related methods now support an options
>   hash that respects the :name option, so they can now be used to
>   drop an index that doesn't use the default index name.
>
> * The PostgreSQL shared adapter now supports a
>   Database#reset_primary_key_sequence method to reset the
>   primary key sequence for a given table, based on code from
>   ActiveRecord.
>
> * SQL::QualifiedIdentifiers can now be qualified, allowing you to do:
>
>    :column.qualify(:table).qualify(:schema)
>
> * Using the :db_type=>'mssql' option with the DBI adapter will now
>   load the MSSQL support.
>
> * The MySQL shared adapter now supports Dataset#full_text_sql, which
>   you can use in queries like the following:
>
>     ds.select(:table.*, ds.full_text_sql(:column, 'value').as(:ft))
>
> Other Improvements
> ------------------
>
> * Sequel will now release connections from the connection pool
>   automatically if they are held by a dead thread.  This can happen
>   if you are using MRI 1.8 and you are heavily multithreaded or
>   you call Thread#exit! or similar method explicitly.  Those methods
>   skip the execution of ensure blocks which normally release the
>   connections when the threads exit.
>
> * Model#save will now always use the same server when refreshing data
>   after an insert.  This fixes an issue when Sequel's master/slave
>   database support is used with models.
>
> * SQL Array references are now quoted correctly, so code like this
>   now works:
>
>     :table__column.sql_subscript(1)
>
> * The PostgreSQL shared adapter now handles sequences that need to be
>   quoted correctly (previously these were quoted twice).
>
> * String quoting on Oracle no longer doubles backslashes.
>
> * Database#count now works correctly when used on MSSQL when using
>   an adapter that doesn't handle unnamed columns.
>
> * Full text searching in the MySQL adapter now works correctly when
>   multiple search terms are used.
>
> * Altering a column's name, type, default, or NULL/NOT NULL status
>   on MySQL now keeps other relevent column information.  For example,
>   if you alter a column's type, it'll keep an existing default. This
>   functionality isn't complete, there may be other column information
>   that is lost.
>
> * Fix creation of an index with a given type on MySQL, since MySQL's
>   documentation lies.
>
> * The schema parser now handles decimal types with size specifiers,
>   fixing use on MySQL.
>
> * Dataset#quote_identifier now works correctly when given an
>   SQL::Identifier.  This allows you to do:
>
>     dataset.select{sum(hours).as(hours)}
>
> Backwards Compatibility
> -----------------------
>
> * Sequel will now use instance_eval on all virtual row blocks without
>   an argument.  This can lead to much nicer code:
>
>     dataset.filter{(number > 10) & (name > 'M')}
>     # WHERE number > 10 AND name > 'M'
>
>   2.12.0 raised a deprecation warning if you used a virtual row block
>   without an argument and you hadn't set
>   Sequel.virtual_row_instance_eval = true.
>
> * Dataset#exclude now inverts the given argument, instead of negating
>   it. This only changes its behavior if it is called with a hash or
>   array of all two pairs that have more than one element.
>
>     # 2.12.0
>     dataset.exclude(:a=>1, :b=>1) # a != 1 AND b != 1
>     # 3.0.0
>     dataset.exclude(:a=>1, :b=>1) # a != 1 OR b != 1
>
>   This was done for consistency, since exclude would only negate a
>   hash if it was given an argument, it would invert the same hash
>   if you used a block:
>
>     # 2.12.0
>     dataset.exclude{{:a=>1, :b=>1}} # a != 1 OR b != 1
>
>   If you want the previous behavior,
>   change the code to the following:
>
>     dataset.filter({:a=>1, :b=>1}.sql_negate)
>
> * As noted above, the methods/features deprecated in 2.12.0 were
>   removed.
>
> * The private Dataset#select_*_sql methods now only take a single
>   argument, the SQL string being built.
>
> * Dataset#from when called without arguments would previously cause an
>   error to be raised when the SQL string is generated.  Now it causes
>   no FROM clause to be used, similar to how Dataset#select with no
>   arguments causes SELECT * to be used.
>
> * The internals of the generic type support and the schema generators
>   were changed significantly, which could have some fallout in terms
>   of old migrations breaking if they used the generic types and were
>   relying on some undocumented behavior (such as using Integer as a
>   type with the :unsigned option).
>
> * The Firebird adapter no longer translates the text database
>   specific type.  Use the following instead:
>
>     String :column, :text=>true
>
> * The MySQL shared adapter used to use the timestamp type for Time,
>   now it uses datetime.  This is because the timestamp type cannot
>   represent everything that the ruby Time class can represent.
>
> * Metaprogramming#metaattr_accessor and #metaattr_reader methods were
>   removed.
>
> * Dataset#irregular_function_sql was removed.
>
> 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