Changed ActiveRecord::Associations::CollectionProxy#select to take multiple arguments.

This makes the arguments the same as ActiveRecord::QueryMethods::select.
Maintain proleptic gregorian in Time#advance

Time#advance uses Time#to_date and Date#advance to calculate a new date.
The Date object returned by Time#to_date is constructed with the assumption
that the Time object represents a proleptic gregorian date, but it is
configured to observe the default julian calendar reform date (2299161j)
for purposes of calculating month, date and year:

  Time.new(1582, 10, 4).to_date.to_s           # => "1582-09-24"
  Time.new(1582, 10, 4).to_date.gregorian.to_s # => "1582-10-04"

This patch ensures that when the intermediate Date object is advanced
to yield a new Date object, that the Time object for return is contructed
with a proleptic gregorian month, date and year.
Fix stream closing when sending file with `ActionController::Live` included.

Fixes #12381
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
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
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
Improve the tests to not call assert_nothing_raised
Fix the enums writer methods

Previously, the writer methods would simply check whether the passed
argument was the symbol representing the integer value of an enum field.
Therefore, it was not possible to specify the numeric value itself but
the dynamically defined scopes generate where clauses relying on this
kind of values so a chained call to a method like `find_or_initialize_by`
would trigger an `ArgumentError`.

Reference #13530
Improve enum documentation

Add a mention about the automatic generation of scopes based on the
allowed values of the field on the enum documentation.