Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
implement ActiveRecord::Base#pretty_print + changelog
Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost

When working with objects with a nanosecond component, the `-` method may
unnecessarily cause loss of precision.

`ActiveSupport::TimeWithZone#-` should return the same result as if we were
using `Time#-`:

    Time.now.end_of_day - Time.now.beginning_of_day #=> 86399.999999999

Before:

    Time.zone.now.end_of_day.nsec #=> 999999999
    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day #=> 86400.0

After:

    Time.zone.now.end_of_day - Time.zone.now.beginning_of_day
    #=> 86399.999999999
Test `except!` in other cases too
Test the serialized types of virtual columns in XML

The previous tests were passing, because nothing ever looked at the
generated XML. What was previously being generated was
`<firstname type="NilClass">...`, which is not consistent with all other
cases where there is not a known type.
Refactor XML serializer to not depend on `serialized_attributes`
fix polymorphic? method and reuse it

Fix polymorphic to check for `options[:polymorphic]` instead of
`options.key? :polymorphic` and then reuse the method `polymorphic?`
method instead of constantly checking the same `options[:polymorphic]`.
Merge pull request #15483 from eileencodes/reuse-available-reflection-polymorphic-methods

fix polymorphic? method and reuse it
pg test, examples for default values and schema dumping of point types.

/cc @sgrif
pg, preserve point type when schema dumping.
test pg, we don't care about the internal state of `column#default`.

That data is internal to Active Record. What we care about is that
new records have the right default value.
test pg, move bit string type tests into `bit_string_test.rb`.
Refactor determination of whether the field has changed

The types know more about what is going on than the dirty module. Let's
ask them!
pg, preserve type when schema dumping bit and bit varying columns.
Merge pull request #15442 from sgrif/sg-refactor-field-changed

Refactor determination of whether the field has changed
Respect limit for PG bit strings
Merge pull request #15487 from sgrif/sg-bit-limit

Respect limit for PG bit strings
Refactor quoting of binary data to not be based on the column type
Return a null column when no column exists for an attribute
test pg, rm unused requires.