Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
implement ActiveRecord::Base#pretty_print + changelog
Test `except!` in other cases too
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.
pg, preserve money type when dumping schema and extract money default.
test pg, remove unused column assignments. Follow up to 254cdf47
Keep column defaults in type cast form

The contract of `_field_changed?` assumes that the old value is always
type cast. That is not the case for the value in `Column#default` as
things are today. It appears there are other public methods that
assume that `Column#default` is type cast, as well. The reason for this
change originally was because the value gets put into `@raw_attributes`
in initialize. This reverts to the old behavior on `Column`, and updates
`initialize` to make sure that the values are in the right format.