make enums distinct per class
Merge pull request #14609 from evanwhalen/enums_inheritance

Make enums distinct per class
Ignore order when doing count.

This is necessary because Postgresql doesn't play nice with ORDER BY and
no GROUP BY.

Fixes #14621.
Merge pull request #14631 from laurocaetano/fix_count_with_order

Ignore order when doing count.
Use connection-specific bytea escaping

In our normal usage, it's rare for this to make a difference... but is
more technically correct.

As well as a spec that proves this is a good idea, let's also add a more
sane-looking one that just covers basic to_sql functionality. There
aren't many places where we actually use escape_bytea, but that's one
that won't be going away.
Merge pull request #14632 from matthewd/escape_bytea

Use connection-specific bytea escaping
Build the reverse_order on its proper method.

The reverse_order method was using a flag to control if the order should
be reversed or not. Instead of using this variable just build the reverse order
inside its proper method.

This implementation was leading to an unexpected behavior when using
reverse_order and then applying reorder(nil).

Example:
  Before
    Post.order(:name).reverse_order.reorder(nil)
    # => SELECT "posts".* FROM "posts"   ORDER BY "posts"."id" DESC

  After
    Post.order(:name).reverse_order.reorder(nil)
   # => SELECT "posts".* FROM "posts"
Remove useless begin..end
remove check for present? from delete_all

Passing in a blank string is a bug so there's no reason
to check for a blank string.
Rails.application should be set inside before_configuration hook

Fixes #14620
Merge pull request #14635 from eileencodes/remove-check-for-present

remove check for present? from delete_all method
Merge pull request #14634 from laurocaetano/fix_reorder

Build the reverse_order on its proper method.
Follow up to bbe7fe41 to fix enum leakage across classes.

The original attempt didn't really fix the problem and wasn't testing the
problematic area. This commit corrected those issues in the original commit.

Also removed the private `enum_mapping_for` method. As `defined_enums` is now a
method, this method doesn't provide much value anymore.
Ensure we are looking  with string keys
Only apply DATABASE_URL for Rails.env

As we like ENV vars, also support DATABASE_URL_#{env}, for more obscure
use cases.
Make sure DEFAULT_URL only override current environment database
configuration
Test DATABASE_URL has precendance over DATABASE_URL_#{environment}
Only call DEFAULT_ENV proc one time
Check env_url only once
entry is always a Hash