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
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
Merge pull request #13525 from huoxito/make-outer-joins-on-proper-parent

Make outer joins on proper parent
Use `Array#wrap` instead `Array()`

- since `Array()` calls `to_ary` or `to_a` on a subject
- the intent is to 'wrap' subject into an array
add test case
Improve tests to use only public API
Merge remote-tracking branch 'origin/master'
Add the ability to nullify the `enum` column
Merge pull request #13419 from amrnt/nullize-enum

Add the ability to nullize the enum column
Update grant statement to address #13549
Change the inexistent database name to inexistent_activerecord_unittest
to make this grant statement described in the document works

GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.* to 'rails'@'localhost';
Fix comment syntax

The code syntax in the comment example is invalid
Allow engine root relative redirects using an empty string.

Example:

    # application routes.rb
    mount BlogEngine => '/blog'

    # engine routes.rb
    get '/welcome' => redirect('')

This now redirects to the path `/blog`, whereas before it would redirect
to the application root path. In the case of a path redirect or a custom
redirect if the path returned contains a host then the path is treated as
absolute. Similarly for option redirects, if the options hash returned
contains a `:host` or `:domain` key then the path is treated as absolute.

Fixes #7977
Merge pull request #13558 from bcardarella/bc-fix-example-syntax

Fix comment syntax
[ci skip] Add missing flash message in block filter example.

Also make all three examples consistent.
Avoid raising a NameError on FreeBSD using Date

The Date object has a xmlschema method starting with Ruby 1.9 so we were
assuming that we could safely remove this method and redefine it later
but the call to remove_method throws a NameError on FreeBSD so we should
rely on remove_possible_method instead.

This call is actually needed to avoid warnings when running the test
suite.

Fixes #11723
Merge pull request #13559 from JuanitoFatas/action-controller

[ci skip] Add missing flash message in block filter example.
Merge pull request #13561 from robin850/issue-11723

Avoid raising a NameError on FreeBSD using Date
Merge pull request #13556 from yahonda/update_mysql_grant

Update grant statement to address #13549
Merge pull request #13550 from vipulnsward/13437-fix

Fix for #13437

Conflicts:
	activerecord/CHANGELOG.md