Initial commit for select statements bindparam implementation
Merge branch 'master' into stmt

* master: (330 commits)
  plugin new missing license spec
  let Ruby do the is_a check for us
  Mocha 0.14.0 was released with MT5 support. Switch back to gem
  Fix named routing regression from 3.2.13
  Revert "just call the class method since we know the callbacks are stored at the"
  test refactor
  Add more data to AR::UnknownAttributeError
  Raise when multiple included blocks are defined
  Revert "Integration tests support the OPTIONS http method"
  restore whitespace in Gemfile between sqlite3 and sprockets
  Revert "Add the options method to action_controller testcase."
  Check if APP_RAKEFILE is defined
  Fix detection of engine in rake db:load_config Broken by d1d7c86d0c8dcb7e75a87644b330c4e9e7d6c1c1
  Remove trailing line break
  tiny types should only be integers when the length is <= 1. fixes #10620
  add failing test exposing mysql adapter tinyint bug
  require things we need
  Revert "Merge pull request #10600 from aditya-kapoor/code_refactor"
  just call the class method since we know the callbacks are stored at the class level
  this variable is used, so we don't have to use double assignments
  ...
just a test
more testing
Merge branch 'master' into stmt

* master:
  include bind values from the default scope
experiment
Merge branch 'master' into experiment

* master:
  stop doing assingments in an iterator
Merge branch 'master' into experiment

* master:
  stop swallowing exceptions in assert_queries.  Methods that raise an exception are unlikely to pass this assertion, but since the assertions raise an exception, the original exception is lost.
  Bug fix: Evented notification subscribers can handle published events
push binds through relation objects
Merge branch 'master' into experiment

* master: (49 commits)
  avoid creating a set if no where values are removed
  remove bind values for where clauses that were removed
  push partitioning up so bind elimination can get the removed wheres
  push partion logic down and initialization logic up
  the rake task `db:test:prepare` needs to load the configuration
  In batches test @total was assigned but not used. Use it in tests instead of Post.count
  partition the where values so we can access the removed ones
  eliminate some conditionals
  change method name to reflect what it actually does.
  save the where values in variables so we don't need to look them up all the time
  pass where values to the helper function rather than rely on internal state
  Spelling correction in Upgrading Guide
  Add has_named_route? to the mapper API
  No need CHANGELOG entry for a test fix
  Fix wrong `case_sensitive` in uniqueness validity test
  Fix typo in test name and documentation
  Missing ending ``` at 14.2 Merging of scopes
  copy edits[ci skip]
  Revert "Corrected documentation and added some more for the classify method in inflectors"
  Revert "Changed the CHANGELOG for active_support and improved the doc for inflector method classify"
  ...
adding set_binds
Fix migrations with enable_extension

When using ActiveRecord::Base.table_name_prefix and/or
table_name_suffix, extension names got the same treatment as table names
when running migrations. This led to migrations that tried to call, for
example, enable_extension("prefix_hstore") on the connection.
Verify that route constraints respond to the expected messages instead of silently failing to enforce the constraint
Make remote_ip detection properly handle private IPv6 addresses

Fixes #12638.
Refactor AR's validations_test.rb

The `:context` switch feature is implemented in
ActiveRecord::Validations#valid? method, so we should rename the test
names, and execute `valid?` in the test.

Change test name in AR's validations_test.rb

This test is testing save method's code
Fix bugs with changed attributes tracking when transaction gets rollback
Fix Hash#deep_merge bug and improve documentation — resolves #12738

Previously merging into a hash with a falsy value would not result in
the merge-block being called. The fix is simply to check for presence
of the key in the hash.

The documentation example for `deep_merge` now appropriately
demonstrates what a deep merge does.
Merge branch 'master' into set_binds

* master: (2794 commits)
  doc, API example on how to use `Model#exists?` with multiple IDs. [ci skip]
  Restore DATABASE_URL even if it's nil in connection_handler test
  [ci skip] - error_messages_for has been deprecated since 2.3.8 - lets reduce any confusion for users
  Ensure Active Record connection consistency
  Revert "ask the fixture set for the sql statements"
  Check `respond_to` before delegation due to: https://github.com/ruby/ruby/commit/d781caaf313b8649948c107bba277e5ad7307314
  Adding Hash#compact and Hash#compact! methods
  MySQL version 4.1 was EOL on December 31, 2009 We should at least recommend modern versions of MySQL to users.
  clear cache on body close so that cache remains during rendering
  add a more restricted codepath for templates fixes #13390
  refactor generator tests to use block form of Tempfile
  Fix typo [ci skip]
  Move finish_template as the last public method in the generator
  Minor typos fix [ci skip]
  make `change_column_null` reversible. Closes #13576.
  create/drop test and development databases only if RAILS_ENV is nil
  Revert "Speedup String#to"
  typo fix in test name. [ci skip].
  `core_ext/string/access.rb` test what we are documenting.
  Fix typo in image_tag documentation
  ...

Conflicts:
	activerecord/lib/active_record/associations/join_dependency/join_association.rb
	activerecord/lib/active_record/relation/query_methods.rb
force table creation
bubble bind parameters up when building join dependencies