Merge remote-tracking branch 'knave/master'
Merge remote-tracking branch 'danielb2/master'
Cleanup update ignore commit and update CHANGELOG
Make refreshes after model creation clear the deserialized values in the serialization plugin

This is mostly for consistency.  If you want to skip the clearing,
you can use the skip_create_refresh plugin.
Make serialization_modification_detection plugin work correctly with new objects and after saving existing objects (Fixes #432)

Previously, the plugin only really worked correctly on existing objects
loaded from the database before saving.  That's generally the main use
case, but other cases should be handled as well.  Unfortunately, to
handle the other cases, on new object creation and after saving, you
need to serialize and deserialize all of the deserialized columns to
get clean copies.
Refactor serialization_modification_detection to increase performance

The previous handling was correct, but not performant, as it did
a serialize/deserialize pair both for new objects and after saving.
Change the code to just clear the original values after saving
(which fixes saved objects), and just serialize early for new
objects (which fixes new objects).

To make this either, add a private serialize_deserialized_values
instance method to the serialization plugin, so that the modification
detection plugin can use it.

While here, update the RDoc for the modification detection plugin.
Bump version to 3.32.0
Fixed spelling, grammar, removed stray whitespace, and fixed formatting of hash options.
Allow disabling use of sudo with SUDO='' when running the rake install/uninstall tasks (Fixes #433)
Make foreign key creation work on MySQL with InnoDB engine without specifying :key option

More fun with MySQL.  With the MyISAM engine, foreign key constraints
are ignored, but it accepts constraints that don't specify the columns.
The InnoDB engine doesn't accept constraints that don't specify the
columns.  So on MySQL, you previously had to specify the :key option
to reference specific columns, even if those columns were the primary
key of the referenced table (the most common case).

This commit changes the shared mysql to parse the schema to determine
the primary keys in the referenced table, and uses those if no :key
option is specified.  It also handles self referential foreign keys
that are created at the same time as the table itself, by
introspecting the generator that created the table.
Support an identifier output method in the mysql2 adapter

Using an identifier output method makes the adapter significantly
slower, since it has to create a new hash, but at least it still
works correctly.  There should be no measureable decrease in
performance if you don't have an identifier output method.
Add Database#supports_savepoints_in_prepared_transactions?, false on MySQL 5.5 (Fixes #437)

MySQL 5.5 appears not to like savepoints in prepared transactions,
which MySQL 5.1 (and I think 5.0) do not have a problem with. Add
an additional method to check the support for savepoint/prepared
transactions combination, and set it to false on MySQL 5.5+.

While here, only support prepared transactions and savepoints on
MySQL 5.0+.  I never test on MySQL < 5.0, but I don't think earlier
versions support those features.
Fix typo in testing doc (Fixes #438)
Fix error message for constantize in the model inflector
add #create_schema / #drop_schema and associated tests to postgres adapter
document :cascade option for #drop_schema more accurately
Cleanup create/drop schema commit and update CHANGELOG

The schema name needs to be quoted, and we should be checking the
method actually works, not just that it produces the expected SQL.
Support an :sslmode option when using the postgres adapter with the pg driver
Add note to ThreadedConnectionPool#disconnect about in-use connections (Fixes #441 and #442)
Remove references to sharding in the threaded connection pool RDoc