Support children with composite primary keys in the nested_attributes plugin.
Some tweaks to nested_attributes to get the specs passing on 1.8.7.
Minor changes to match the style of the rest of Sequel.
Nested attributes plugin: support creating children with primary keys passed through the attributes hash.

This adds an option to the nested_attributes declaration: :unmatched_key. Set it to :create to allow the creation of new children when an attributes hash contains an unmatched primary key. The default setting is :raise, which throws an error when an unmatched primary key is supplied. You can also set it to :ignore, which ignores any attributes hashes with unmatched primary keys. Setting :strict=>false is the same as :unmatched_pk=>:ignore, for backwards compatibility.

One small backwards incompatibility: when :unmatched_pk=>:ignore (or :strict=>false), the nested_attributes_update and nested_attributes_remove methods are no longer called when no children match the supplied primary key. Anyone overriding those methods should be aware of this.
Let nested_attributes take a proc as a :transform option, which is yielded both each attribute hash and the parent object itself.
Add missing documentation for the :reject_if option for nested_attributes.
Edit the nested_attributes :transform proc - switch the order of the arguments and expect it to return an attributes hash.
Add spec for :index_names option.
Add support for :index_names option. It provides a facility to omit
names of indexes from the dump and a facility to prepend table name.
Make Database#transaction on PostgreSQL recognize :read_only and :deferrable options

In addition to setting the transaction isolation level, PostgreSQL
also supports these additional options.  READ ONLY ensures that
most data changing commands are not allowed.  DEFERRABLE is only
important for transactions that are both SERIALIZABLE and READ
ONLY, in which case it has less overhead than a standard
SERIALIZABLE transaction.
Mark a couple dataset methods private in jdbc/postgres adapter
Fix typecasting of time columns on jdbc/postgres, before could be off by a millisecond

I was getting this occassional failure on the jdbc/postgres tests,
which I tracked down to the floating point addition done here.
Instead of doing floating point addition after time parsing, put
the correct milliseconds as part of the string, so that the time
parsing code can get it correct without the need to worry about
rational numbers.
Merge remote-tracking branch 'r-stu31/schema_dumper-index_names-unsigned_int'
Fix nondeterminism after schema dumper spec change on ruby 1.8

On ruby 1.8, hashes don't have a set order, which makes checks
for specific strings a pain.  Just sidestep the issue in this case
by not using unique, since that's not what we are testing for
anyway.
Add Database#global_index_namespace? method

This checks if the index namespace is global, or whether there is
a separate index namespace per table.  The default is true since
that is what most databases seem to use, with MySQL, MSSQL, and
Oracle being exceptions.

It's a shame this wasn't here in the beginning, since this
should be used by the default_index_name method to omit the
table name if indexes are already namespaced per table.  For
backward compatibility, that unfortunately cannot be done.
Make schema_dumper :index_names=>:namespace only affect databases that use a per-table index namespace

If the database uses a global index namespace, the index names
are already required to be unique, so there is no point in
namespacing them.
Drop indexes in the reverse order that they were added in the schema dumper

I can't imagine the previous way breaking things, but for consistency,
the schema dumper should always have the down block do the reverse
of the up block in the reverse order.
Support :using option to set_column_type on PostgreSQL, to force a specific conversion from the old value to the new value

USING allows you to convert a column from one type to another even
if there is no specific typecast for the conversion.  It's very
flexible, even allowing other columns in the same row to be
referenced.
Allow Model#from_json in the json_serializer plugin to use set_fields if a :fields option is given

Additionally, pass the options hash to set_fields, so you can use
the :missing=>:skip and :missing=>:raise options.
Merge remote-tracking branch 'chanks/tweak-nested-attributes'