Fix method redefined warning message in mapper.rb
Fix Encoding::CompatibilityError when public path is UTF-8

In #5337 we forced the path encoding to ASCII-8BIT to prevent static
file handling from blowing up before an application has had chance to
deal with possibly invalid urls. However this has a negative side
effect of making it an incompatible encoding if the application's
public path has UTF-8 characters in it.

To work around the problem we check to see if the path has a valid
encoding once it has been unescaped. If it is not valid then we can
return early since it will not match any file anyway.

Fixes #13518
raise `ArgumentError` exception if `Model.where.not` is called with `nil` argument
Merge pull request #13534 from kuldeepaggarwal/f-where-not

raise ArgumentError for nil in .where.not
Merge pull request #13527 from kuldeepaggarwal/f-independent-specs

Use user-defined configurations in mysql tests
Extract db url connection logic to class
Merge pull request #13535 from schneems/schneems/extract-url-logic

Extract db url connection logic to class
Revert "Install bundle gems to the system not to vendor/bundle"

This reverts commit 875dd3edfd34eaa20120b6589b0d1905230e948f.

The issue was fixed in rbx-2.2.3
Remove deprecation warning for FIXTURES_PATH

FIXTURES_PATH has a bit different case than DatabaseTasks.fixtures_path,
which was added along with deprecation. A use case for FIXTURES_PATH
could be loading fixtures from a different directory just for a given
test run. The implementation is fairly simple, so leaving it as it is
won't hurt.
Add a missing changelog entry for #13534 [ci skip]
Merge pull request #13538 from robin850/patch-14

Add a missing changelog entry for #13534 [ci skip]
tidy AR CHANGELOG. [ci skip]
Update explanation to match example
Merge pull request #13539 from StevenNunez/patch-1

Update explanation to match example [ci skip]
[ci skip] ConnectionSpecification::Resolver Docs

Document the internal interfaces of `ConnectionSpecification::Resolver`

Change method name from `config` to `env` to better match the most common use case.
Merge pull request #13536 from schneems/schneems/connection-spec-docs

[ci skip] ConnectionSpecification::Resolver Docs
Allow "url" sub key in database.yml configuration

Currently a developer can pass in a YAML configuration that fully specifies connection information:

```
production:
  database: triage_production
  adapter: password
  pool: 5
```

They can also pass in a string that specifies a connection URL directly to an environment key:

```
production: postgresql://localhost/foo
```

This PR allows the use of both a connection url and specifying connection attributes via YAML through the use of the "url" sub key:

```
production:
  url: postgresql://localhost/foo
  pool: 3
```

This will allow developers to inherit Active Record options such as `pool` from `&defaults` and still use a secure connection url such as `<%= ENV['DATABASE_URL'] %>`. The URL is expanded into a hash and then merged back into the YAML hash. If there are any conflicts, the values from the connection URL are preferred. 

Talked this over with @josevalim
https://github.com/rails/rails/commit/2075f39d726cef361170218fd16421fc52bed5a8 introduced a regression in includes/preloades
by calling `read_attribute` on an association when preloading takes places, instead of using loaded records in `association.target`.

tl;dr

Records are not made properly available via `read_attribute` when preloding in simultaneous,
but value of `@loaded` is already set true, and records concatenated in `association.target` on an association object.
When `@loaded` is true we return an object of `AlreadyLoaded` in preload_for. In `AlreadyLoaded` to return preloaded
records we make wrong use of `read_attribute`, instead of `target` records.

The regression is fixed by making use of the loaded records in `association.target` when the preloading takes place.

Fixes #13437
Merge pull request #13541 from schneems/schneems/db-url-sub-key

Allow "url" sub key in database.yml configuration
Make outer joins on proper parent

Outer joins were being built on the root relation klass rather than the
one specified in the join dependency root