= New Features

* A :before_retry option has been added to Database#transaction, which
  specifies a proc to call when retrying if the :retry_on option
  is used.  This can be used to implement additional logging, sleeping
  between retries, or other things.

* The to_json method :root option in the json_serializer plugin can now
  be a string value to specify the name for the object key, instead of
  using the underscored model name.

* Dataset#paged_each now returns an enumerator if not passed a block.

* You can now set the :instance_specific association option to false.
  Previously, it was automatically set to true in some cases.  If you
  know the association does not depend on anything instance-specific
  other than the foreign/primary key, setting this option can allow
  Sequel to perform some additional optimizations.

= Other Improvements

* Eager loading queries are now skipped if there are no matching keys.
  There was code to check this previously, but it was accidently
  removed in an earlier refactoring.

* Eager loading an association with a limit and an eager block and
  cascaded associations now works correctly when the window_function
  limit strategy is used (the default on databases that support
  window functions).

* Eager loading an association with a limit with an eager block now
  works correctly on databases do not support window functions but do
  support correlated subqueries.

* The parent association is now set on associated objects when loading
  descendants in the rcte_tree plugin.  This allows the parent method
  on any of the descendants to work without issuing a database query.

* The prepared_statements_associations plugin now only uses prepared
  statements if association metadata is being cached.  Previously, it
  would use prepared statements even if association metadata was not
  cached, which could leak the prepared statements.

* Model#dup now duplicates the associations hash for the object.

* Model#freeze no longer validates an object if the the errors for the
  object are already frozen.  The static_cache plugin now freezes the
  errors before freezing the object, so that it doesn't validate the
  object.  This can skip many database queries when the
  auto_validations plugin is used and there is a unique constraint or
  index on the related table.

* AUTOINCREMENT is now used again on SQLite by default for primary
  keys.  It was removed when :auto_increment was added to the schema
  hashes, but the removal changed SQLite's behavior.  This restores
  the previous behavior.

* Microsoft SQL Server's bit type is now recognized as a boolean type
  by the schema dumper.

* The pg_enum extension's create_enum method can now be used in
  reversible migrations.

* set_column_type with the :auto_increment=>true option once again
  works on MySQL.  It had been broken since Sequel started adding
  :auto_increment to the schema hashes.

* The mysql2 adapter now recognizes the :charset option as a synonym
  for :encoding.

* The swift adapter now respects database and application timezone
  settings.

= Backwards Compatibility

* AssociationReflection#apply_ruby_eager_limit_strategy no longer
  checks that the strategy is :ruby, callers are now expected to
  check the value themselves.  This should only matter if you are
  using custom association types.
