Active Record supports multiple database systems. AbstractAdapter and related classes form
the abstraction layer which makes this possible. An AbstractAdapter represents a connection to
a database, and provides an abstract interface for database-specific
functionality such as establishing a connection, escaping values, building
the right SQL fragments for :offset and :limit
options, etc.

# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 172defleaseifin_use?msg = "Cannot lease connection, "if@owner==Thread.currentmsg<<"it is already leased by the current thread."elsemsg<<"it is already in use by a different thread: #{@owner}. ""Current thread: #{Thread.current}."endraiseActiveRecordError, msgend@owner = Thread.currentend

Provides access to the underlying database driver for this adapter. For
example, this method returns a Mysql2::Client object in case of Mysql2Adapter, and a PG::Connection object in
case of PostgreSQLAdapter.

This is useful for when you need to call a proprietary method such as
PostgreSQL's lo_* methods.

Checks whether the connection to the database is still active (i.e. not
stale). This is done under the hood by calling active?. If the
connection is no longer active, then this method will reconnect to the
database.

# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 439defverify!(*ignored)
ifignored.size>0ActiveSupport::Deprecation.warn("Passing arguments to #verify method of the connection has no effect and has been deprecated. Please remove all arguments from the #verify method call.")
endreconnect!unlessactive?end