123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::RactorConnectionHandler::MysqlProxyAdapter

Do not use. This class is for internal use only.

Constant Summary

::ActiveSupport::Callbacks - Included

CALLBACK_FILTER_TYPES

::ActiveRecord::ConnectionAdapters::SchemaStatements - Included

EMPTY_METADATA

::ActiveRecord::ConnectionAdapters::DatabaseStatements - Included

DEFAULT_INSERT_VALUE, HIGH_PRECISION_CURRENT_TIMESTAMP, TRANSACTION_ISOLATION_LEVELS

::ActiveRecord::ConnectionAdapters::AbstractAdapter - Inherited

ADAPTER_NAME, COMMENT_REGEX, DEFAULT_READ_QUERY, EXTENDED_TYPE_MAPS, MAX_JITTER, SIMPLE_INT, TYPE_MAP

AbstractProxyAdapter - Inherited

ADAPTER_NAME, CAPABILITY_METHOD_PATTERN, PLACEHOLDER_LOGGER, PURE_REMOTE_METHOD_PATTERN

Class Attribute Summary

::ActiveRecord::ConnectionAdapters::AbstractAdapter - Inherited

.__callbacks,
.migration_strategy

Allows configuration of migration strategy per adapter type.

.migration_strategy?

Class Method Summary

Instance Attribute Summary

AbstractProxyAdapter - Inherited

::ActiveRecord::ConnectionAdapters::AbstractAdapter - Inherited

#__callbacks,
#active?

Checks whether the connection to the database is still active.

#connected?

Checks whether the connection to the database was established.

#database_exists?,
#in_use?
#lock, #logger, #migration_strategy, #migration_strategy?, #owner, #pool, #pool=,
#prepared_statements
#preventing_writes?

Determines whether writes are currently being prevented.

#replica?,
#requires_reloading?

Returns true if its required to reload the connection between requests for development mode.

#savepoint_errors_invalidate_transactions?

Do TransactionRollbackErrors on savepoints affect the parent transaction?

#sql_notifications?,
#supports_advisory_locks?

Does this adapter support application-enforced advisory locking?

#supports_bulk_alter?,
#supports_check_constraints?

Does this adapter support creating check constraints?

#supports_comments?

Does this adapter support metadata comments on database objects (tables, columns, indexes)?

#supports_comments_in_create?

Can comments for tables, columns, and indexes be specified in create/alter table statements?

#supports_common_table_expressions?, #supports_concurrent_connections?, #supports_datetime_with_precision?,
#supports_ddl_transactions?

Does this adapter support DDL rollbacks in transactions? That is, would CREATE TABLE or ALTER TABLE get rolled back by a transaction?

#supports_deferrable_constraints?

Does this adapter support creating deferrable constraints?

#supports_disabling_indexes?,
#supports_enforced_foreign_keys?

Does this adapter support NOT ENFORCED foreign key constraints?

#supports_exclusion_constraints?

Does this adapter support creating exclusion constraints?

#supports_explain?

Does this adapter support explain?

#supports_expression_index?

Does this adapter support expression indices?

#supports_extensions?

Does this adapter support database extensions?

#supports_foreign_keys?

Does this adapter support creating foreign key constraints?

#supports_foreign_tables?

Does this adapter support foreign/external tables?

#supports_index_include?

Does this adapter support including non-key columns?

#supports_index_sort_order?

Does this adapter support index sort order?

#supports_indexes_in_create?

Does this adapter support creating indexes in the same statement as creating the table?

#supports_insert_conflict_target?, #supports_insert_on_duplicate_skip?, #supports_insert_on_duplicate_update?, #supports_insert_returning?,
#supports_json?

Does this adapter support JSON data type?

#supports_lazy_transactions?,
#supports_materialized_views?

Does this adapter support materialized views?

#supports_nulls_not_distinct?,
#supports_optimizer_hints?

Does this adapter support optimizer hints?

#supports_partial_index?

Does this adapter support partial indices?

#supports_partitioned_indexes?, #supports_restart_db_transaction?,
#supports_savepoints?

Does this adapter support savepoints?

#supports_transaction_isolation?

Does this adapter support setting the isolation level for a transaction?

#supports_unique_constraints?

Does this adapter support creating unique constraints?

#supports_update_returning?,
#supports_validate_constraints?

Does this adapter support creating invalid constraints?

#supports_views?

Does this adapter support views?

#supports_virtual_columns?

Does this adapter support virtual columns?

#visitor, #reconnect_can_restore_state?, #advisory_locks_enabled?, #allow_preconnect, #allow_preconnect=, #async_enabled?, #lock_thread=, #needs_reconnect?, #pinned,
#proxied=

When true, this connection is the backend of a ractor proxy connection.

#proxied?, #verified?

::ActiveRecord::ConnectionAdapters::DatabaseStatements - Included

::ActiveRecord::ConnectionAdapters::SchemaStatements - Included

Instance Method Summary

AbstractProxyAdapter - Inherited

Proxy - Included

#boundary_safe_bind

Attribute types may close over procs, so the database value is resolved locally.

#checkin_all_connections

For supervisors tearing down worker Ractors, which cannot release their own tokens when they die.

#checkin_token, #connection_pinned?, #discard_token, #dump_binds, #dump_column_types, #dump_object,
#main_operation

Proxy work to the main ractor.

#remove_token

::ActiveRecord::ConnectionAdapters::AbstractAdapter - Inherited

#adapter_name

Returns the human-readable name of the adapter.

#check_all_foreign_keys_valid!

Override to check all foreign key constraints in a database.

#clear_cache!

Clear any caching the database adapter may be doing.

#close

Check the connection back in to the connection pool.

#connect!, #connection_retries, #default_timezone,
#disable_extension

This is meant to be implemented by the adapters that support extensions.

#disable_referential_integrity

Override to turn off referential integrity while executing &block.

#discard!

Immediately forget this connection ever existed.

#disconnect!

Disconnects from the database if already connected.

#enable_extension

This is meant to be implemented by the adapters that support extensions.

#extensions

A list of extensions, to be filled in by adapters that support them.

#index_algorithms

A list of index algorithms, to be filled by adapters that support them.

#lease

this method must only be called while holding connection pool's mutex.

#max_jitter, #pool_jitter,
#prefetch_primary_key?

Should primary key values be selected from their corresponding sequence before the insert statement? If true, next_sequence_value is called before each insert to set the record's primary key.

#prepared_statements?,
#raw_connection

Provides access to the underlying database driver for this adapter.

#reconnect!

Disconnects from the database if already connected, and establishes a new connection with the database.

#reset!

Reset the state of this connection, directing the DBMS to clear transactions and other connection-related server-side state.

#retry_deadline, #return_value_after_update?,
#role

The role (e.g. :writing) for the current connection.

#schema_cache,
#schema_version

Returns the version identifier of the schema currently available in the database.

#shard

The shard (e.g. :default) for the current connection.

#throw_away!

Removes the connection from the pool and disconnect it.

#unprepared_statement, #verify,
#verify!

Checks whether the connection to the database is still active (i.e. not stale).

#verify_timeout,
#any_raw_connection

Returns a raw connection for internal use with methods that are known to both be thread-safe and not rely upon actual server communication.

#arel_visitor, #attempt_configure_connection, #backoff, #build_retry_budget, #build_statement_pool, #can_perform_case_insensitive_comparison_for?, #collector, #column_for, #column_for_attribute,
#configure_connection

Perform any necessary initialization upon the newly-established connection settings, run queries to configure any application-global "session" variables, etc.

#default_prepared_statements,
#ensure_connection_ready

Ensure the connection is ready to execute a query.

#extended_type_map_key, #invalidate_transaction, #log, #reconnect, #retryable_connection_error?, #retryable_query_error?,
#skip_verification?

Decide whether the connection can be used without verification.

#translate_exception, #translate_exception_class, #type_map,
#valid_raw_connection

Similar to any_raw_connection, but ensures it is validated and connected.

#verified!

Mark the connection as verified.

#warning_ignored?,
#with_raw_connection

Lock the monitor, ensure we're properly connected and transactions are materialized, and then yield the underlying raw connection object.

#add_enum_value

This is meant to be implemented by the adapters that support custom enum types.

#attempt_retry

Consume from budget if exception warrants another attempt.

#build_insert_sql

Called by ::ActiveRecord::InsertAll, Passed an instance of ::ActiveRecord::InsertAll::Builder, This method implements standard bulk inserts for all databases, but should be overridden by adapters to implement common features with non-standard syntax like handling duplicates or returning values.

#case_insensitive_comparison, #case_sensitive_comparison, #check_version, #clean!,
#connection_age

Seconds since this connection was established.

#connection_descriptor,
#create_enum

This is meant to be implemented by the adapters that support custom enum types.

#create_or_find_by_lock

Lock used to read an existing record after a duplicate INSERT in a transaction.

#create_virtual_table

This is meant to be implemented by the adapters that support virtual tables.

#database_version, #default_index_type?, #downgrade_connection_after_error,
#drop_enum

This is meant to be implemented by the adapters that support custom enum types.

#drop_virtual_table

This is meant to be implemented by the adapters that support virtual tables.

#expire

this method must only be called while holding connection pool's mutex.

#force_retirement

Mark the connection as needing to be retired, as if the age has exceeded the maximum allowed.

#get_advisory_lock

This is meant to be implemented by the adapters that support advisory locks.

#get_database_version, #inspect, #native_database_types, #prepared_statements_disabled_cache, #ractor_connection_capabilities, #ractor_connection_profile,
#release_advisory_lock

This is meant to be implemented by the adapters that support advisory locks.

#rename_enum

This is meant to be implemented by the adapters that support custom enum types.

#rename_enum_value

This is meant to be implemented by the adapters that support custom enum types.

#retryable_failure?, #return_value_after_insert?,
#seconds_idle

Seconds since this connection was returned to the pool.

#seconds_since_last_activity

Seconds since this connection last communicated with the server.

#steal!

this method must only be called while holding connection pool's mutex (and a desire for segfaults).

#valid_type?, #instrumenter

::ActiveRecord::ConnectionAdapters::Savepoints - Included

::ActiveRecord::ConnectionAdapters::DatabaseLimits - Included

#index_name_length

Returns the maximum length of an index name.

#table_alias_length

Returns the maximum length of a table alias.

#table_name_length

Returns the maximum length of a table name.

#bind_params_length, #max_identifier_length

::ActiveRecord::ConnectionAdapters::Quoting - Included

#quote

Quotes the column value to help prevent SQL injection attacks.

#quote_column_name

Quotes the column name.

#quote_string

Quotes a string, escaping any ' (single quote) and \ (backslash) characters.

#quote_table_name

Quotes the table name.

#quote_table_name_for_assignment

Override to return the quoted table name for assignment.

#quoted_date

Quote date/time values for use in SQL input.

#quoted_false, #quoted_true,
#type_cast

Cast a value to a type that the database understands.

#unquoted_false, #unquoted_true,
#cast_bound_value

Cast a value to be used as a bound parameter of unknown type.

#lookup_cast_type, #quote_default_expression, #quoted_binary, #quoted_time, #sanitize_as_sql_comment, #type_casted_binds

::ActiveRecord::ConnectionAdapters::DatabaseStatements - Included

#add_transaction_record

Register a record with the current transaction so that its after_commit and after_rollback callbacks can be called.

#begin_db_transaction

Begins the transaction (and turns off auto-committing).

#begin_isolated_db_transaction

Begins the transaction with the isolation level set.

#commit_db_transaction

Commits the transaction (and turns on auto-committing).

#create
#default_sequence_name,
#delete

Executes the delete statement and returns the number of rows affected.

#disable_lazy_transactions!, #empty_insert_statement_value, #enable_lazy_transactions!,
#exec_delete

Executes delete sql statement in the context of this connection using binds as the bind substitutes.

#exec_insert

Executes insert sql statement in the context of this connection using binds as the bind substitutes.

#exec_query

Executes sql statement in the context of this connection using binds as the bind substitutes.

#exec_update

Executes update sql statement in the context of this connection using binds as the bind substitutes.

#execute

Executes the SQL statement in the context of this connection and returns the raw result from the connection adapter.

#high_precision_current_timestamp

Returns an ::Arel SQL literal for the CURRENT_TIMESTAMP for usage with arbitrary precision date/time columns.

#initialize,
#insert

Executes an INSERT query and returns the new record's ID.

#insert_fixture

Inserts the given fixture into the table.

#insert_fixtures_set,
#reset_isolation_level

Hook point called after an isolated DB transaction is committed or rolled back.

#reset_sequence!

Set the sequence to the max value of the table's column.

#restart_db_transaction,
#rollback_db_transaction

Rolls back the transaction (and turns on auto-committing).

#rollback_to_savepoint,
#select_all

Returns an ::ActiveRecord::Result instance.

#select_one

Returns a record hash with the column names as keys and column values as values.

#select_rows

Returns an array of arrays containing the field values.

#select_value

Returns a single value from a record.

#select_values

Returns an array of the values of the first column in a select:

#to_sql,
#transaction

Runs the given block in a database transaction, and returns the result of the block.

#transaction_isolation_levels,
#truncate

Executes the truncate statement.

#update

Executes the update statement and returns the number of rows affected.

#write_query?

Determines whether the SQL statement is a write query.

#affected_rows, #apply_returning_to!, #arel_from_relation, #build_delete_from_statements, #build_fixture_sql, #build_fixture_statements, #build_truncate_statement, #build_truncate_statements,
#cast_result

Receive a native adapter result object and returns an ::ActiveRecord::Result object.

#collect_warnings, #combine_multi_statements, #extract_table_ref_from_insert_sql, #internal_build_intent, #last_inserted_id, #perform_query, #primary_key_for_insert,
#raw_intent_last_inserted_id

The last inserted id computed eagerly for a raw intent: the raw driver result cannot cross the Ractor boundary, so it is read before the response is marshaled.

#returning_column_values, #single_value_from_rows, #table_ref_for_insert, #_exec_insert, #begin_deferred_transaction,
#cacheable_query

This is used in the ::ActiveRecord::StatementCache object.

#default_insert_value, #empty_all_tables, #exec_insert_all, #exec_restart_db_transaction, #exec_rollback_db_transaction,
#execute_batch

Executes SQL statements in the context of this connection without returning a result.

#execute_intent

Lowest-level abstract execution of a query, called only from the intent itself.

#execute_raw_intent

Executes intent below the public query pipeline — no logging, query transformers, transaction bookkeeping, or retries — and materializes the outcome.

#explain, #finalize_remaining_intents, #finish_intent_log, #handle_warnings, #perform_sync_attempt, #query_all, #query_command, #query_one, #query_rows, #query_value, #query_values, #reset_transaction, #start_intent_log, #to_sql_and_binds, #truncate_tables,
#update_with_result

Executes the update statement and returns an ::ActiveRecord::Result Some adapters support the returning keyword argument.

#with_yaml_fallback

::ActiveRecord::Fixture value is quoted by ::Arel, however scalar values are not quotable.

::ActiveRecord::ConnectionAdapters::SchemaStatements - Included

#add_belongs_to
#add_check_constraint

Adds a new check constraint to the table.

#add_column

Add a new type column named column_name to table_name.

#add_foreign_key

Adds a new foreign key.

#add_index

Adds a new index to the table.

#add_reference

Adds a reference.

#add_timestamps

Adds timestamps (created_at and updated_at) columns to table_name.

#assume_migrated_upto_version,
#build_create_table_definition

Returns a ::ActiveRecord::ConnectionAdapters::TableDefinition object containing information about the table that would be created if the same arguments were passed to #create_table.

#change_column

Changes the column's definition according to the new options.

#change_column_comment

Changes the comment for a column or removes it if nil.

#change_column_default

Sets a new default value for a column:

#change_column_null

Sets or removes a NOT NULL constraint on a column.

#change_foreign_key

Changes an existing foreign key on a table.

#change_table

A block for changing columns in table.

#change_table_comment

Changes the comment for a table or removes it if nil.

#check_constraint_exists?

Checks to see if a check constraint exists on a table for a given check constraint definition.

#check_constraints

Returns an array of check constraints for the given table, or a ::Hash of them keyed by table name when given an ::Array of tables.

#column_exists?

Checks to see if a column exists in a given table.

#columns

Returns an array of ::ActiveRecord::ConnectionAdapters::Column objects for the given table, or a ::Hash of them keyed by table name when given an ::Array of tables.

#create_join_table

Creates a new join table with the name created using the lexical order of the first two arguments.

#create_table

Creates a new table with the name table_name.

#data_source_exists?

Checks to see if the data source name exists on the database.

#data_sources

Returns the relation names usable to back Active Record models.

#disable_index

Prevents an index from being used by queries.

#drop_join_table

Drops the join table specified by the given arguments.

#drop_table

Drops a table or tables from the database.

#enable_index

Enables an index to be used by queries.

#foreign_key_exists?

Checks to see if a foreign key exists on a table for a given foreign key definition.

#foreign_keys

Returns an array of foreign keys for the given table, or a ::Hash of them keyed by table name when given an ::Array of tables.

#index_exists?

Checks to see if an index exists on a table for a given index definition.

#index_name_exists?

Verifies the existence of an index with a given name.

#indexes

Returns an array of indexes for the given table, or a ::Hash of them keyed by table name when given an ::Array of tables.

#max_index_name_size

Returns the maximum length of an index name in bytes.

#native_database_types

Returns a hash of mappings from the abstract data types to the native database types.

#options_include_default?,
#primary_key

Returns just a table's primary key.

#remove_belongs_to
#remove_check_constraint

Removes the given check constraint from the table.

#remove_column

Removes the column from the table definition.

#remove_columns

Removes the given columns from the table definition.

#remove_foreign_key

Removes the given foreign key from the table.

#remove_index

Removes the given index from the table.

#remove_reference

Removes the reference(s).

#remove_timestamps

Removes the timestamp columns (created_at and updated_at) from the table definition.

#rename_column

Renames a column.

#rename_index

Renames an index.

#rename_table

Renames a table.

#table_alias_for

Truncates a table alias according to the limits of the current adapter.

#table_comment

Returns the table comment that's stored in database metadata.

#table_exists?

Checks to see if the table table_name exists on the database.

#table_options

Returns the options the given table was created with, or a ::Hash of them keyed by table name when given an ::Array of tables.

#tables

Returns an array of table names defined in the database.

#view_exists?

Checks to see if the view view_name exists on the database.

#views

Returns an array of view names defined in the database.

#add_index_sort_order,
#add_options_for_index_columns

Overridden by the ::ActiveRecord::ConnectionAdapters::MySQL adapter for supporting index lengths and by the ::ActiveRecord::ConnectionAdapters::PostgreSQL adapter for supporting operator classes.

#can_remove_index_by_name?, #change_column_comment_sql, #change_index_comment_sql, #change_table_comment_sql, #check_constraint_for, #check_constraint_for!, #check_constraint_name, #column_options_keys, #create_alter_table, #create_index_definition, #create_table_definition, #data_source_sql, #drop_table_sql, #execute_alter_table,
#expression_column_name?

Try to identify whether the given column name is an expression.

#extract_foreign_key_action,
#extract_new_comment_value
#extract_new_default_value,
#fetch_by_schema

One read filters by one schema, so tables naming different schemas are read a schema at a time.

#fetch_column_definitions, #fetch_table_options, #fetch_type_metadata, #foreign_key_for, #foreign_key_for!, #foreign_key_name, #generate_index_name, #has_expression_column_name?, #index_column_names, #index_name_for_remove, #index_name_options, #insert_versions_sql, #options_for_index_columns, #quoted_scope, #quoted_table_names, #reference_name_for_table, #rename_column_indexes, #rename_table_indexes, #rows_for, #strip_table_name_prefix_and_suffix, #valid_index_options, #validate_change_column_null_argument!, #validate_create_table_options!, #validate_index_length!, #validate_table_length!, #add_columns, #add_index_options,
#build_alter_table_definition

Returns an ::ActiveRecord::ConnectionAdapters::AlterTable object containing information about changes that would be made to table_name.

#build_create_index_definition
#build_create_join_table_definition

Builds a ::ActiveRecord::ConnectionAdapters::TableDefinition object for a join table.

#bulk_change_table, #check_constraint_options,
#columns_for_distinct

Given a set of columns and an ORDER BY clause, returns the columns for a SELECT DISTINCT.

#create_schema_dumper, #distinct_relation_for_primary_key, #dump_schema_versions, #foreign_key_column_for, #foreign_key_options, #index_algorithm, #index_name, #internal_string_options_for_primary_key, #quoted_columns_for_index, #remove_constraint,
#schema_creation

Returns an instance of ::ActiveRecord::ConnectionAdapters::SchemaCreation, which can be used to visit a schema definition object and return DDL.

#type_to_sql, #update_table_definition, #valid_column_definition_options, #valid_primary_key_options, #valid_table_definition_options

::ActiveSupport::Callbacks - Included

#run_callbacks

Runs the callbacks for the given event.

#halted_callback_hook

A hook invoked every time a before callback is halted.

Constructor Details

This class inherits a constructor from ActiveRecord::ConnectionAdapters::RactorConnectionHandler::AbstractProxyAdapter

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveRecord::ConnectionAdapters::RactorConnectionHandler::AbstractProxyAdapter

Instance Attribute Details

#savepoint_errors_invalidate_transactions? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 314

def savepoint_errors_invalidate_transactions?
  remote_dispatch(:savepoint_errors_invalidate_transactions?)
end

#supports_advisory_locks? ⇒ Boolean (readonly)

CAPABILITIES ============================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 24

def supports_advisory_locks?
  pure_remote_dispatch(:supports_advisory_locks?)
end

#supports_bulk_alter? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 28

def supports_bulk_alter?
  pure_remote_dispatch(:supports_bulk_alter?)
end

#supports_check_constraints? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 32

def supports_check_constraints?
  pure_remote_dispatch(:supports_check_constraints?)
end

#supports_comments? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 36

def supports_comments?
  pure_remote_dispatch(:supports_comments?)
end

#supports_comments_in_create? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 40

def supports_comments_in_create?
  pure_remote_dispatch(:supports_comments_in_create?)
end

#supports_common_table_expressions? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 44

def supports_common_table_expressions?
  pure_remote_dispatch(:supports_common_table_expressions?)
end

#supports_disabling_indexes? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 48

def supports_disabling_indexes?
  pure_remote_dispatch(:supports_disabling_indexes?)
end

#supports_explain? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 52

def supports_explain?
  pure_remote_dispatch(:supports_explain?)
end

#supports_expression_index? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 56

def supports_expression_index?
  pure_remote_dispatch(:supports_expression_index?)
end

#supports_foreign_keys? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 60

def supports_foreign_keys?
  pure_remote_dispatch(:supports_foreign_keys?)
end

#supports_index_sort_order? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 64

def supports_index_sort_order?
  pure_remote_dispatch(:supports_index_sort_order?)
end

#supports_indexes_in_create? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 68

def supports_indexes_in_create?
  pure_remote_dispatch(:supports_indexes_in_create?)
end

#supports_insert_on_duplicate_skip? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 72

def supports_insert_on_duplicate_skip?
  pure_remote_dispatch(:supports_insert_on_duplicate_skip?)
end

#supports_insert_on_duplicate_update? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 76

def supports_insert_on_duplicate_update?
  pure_remote_dispatch(:supports_insert_on_duplicate_update?)
end

#supports_insert_returning? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 80

def supports_insert_returning?
  pure_remote_dispatch(:supports_insert_returning?)
end

#supports_json? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 84

def supports_json?
  pure_remote_dispatch(:supports_json?)
end

#supports_lazy_transactions? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 88

def supports_lazy_transactions?
  pure_remote_dispatch(:supports_lazy_transactions?)
end

#supports_optimizer_hints? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 92

def supports_optimizer_hints?
  pure_remote_dispatch(:supports_optimizer_hints?)
end

#supports_restart_db_transaction? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 96

def supports_restart_db_transaction?
  pure_remote_dispatch(:supports_restart_db_transaction?)
end

#supports_savepoints? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 100

def supports_savepoints?
  pure_remote_dispatch(:supports_savepoints?)
end

#supports_transaction_isolation? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 104

def supports_transaction_isolation?
  pure_remote_dispatch(:supports_transaction_isolation?)
end

#supports_views? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 108

def supports_views?
  pure_remote_dispatch(:supports_views?)
end

#supports_virtual_columns? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 112

def supports_virtual_columns?
  pure_remote_dispatch(:supports_virtual_columns?)
end

Instance Method Details

#add_index

ADAPTER SPECIFIC ========================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 206

def add_index(...)
  remote_dispatch(:add_index, ...)
end

#add_index_options

SCHEMA STATEMENTS =======================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 164

def add_index_options(...)
  remote_dispatch(:add_index_options, ...)
end

#add_options_for_index_columns (private)

SCHEMA STATEMENTS =======================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 331

def add_options_for_index_columns(...)
  remote_dispatch(:add_options_for_index_columns, ...)
end

#build_create_index_definition

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 210

def build_create_index_definition(...)
  remote_dispatch(:build_create_index_definition, ...)
end

#can_perform_case_insensitive_comparison_for? ⇒ Boolean (private)

ADAPTER SPECIFIC ========================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 365

def can_perform_case_insensitive_comparison_for?(...)
  pure_remote_dispatch(:can_perform_case_insensitive_comparison_for?, ...)
end

#case_sensitive_comparison

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 214

def case_sensitive_comparison(...)
  pure_remote_dispatch(:case_sensitive_comparison, ...)
end

#cast_bound_value

QUOTING =================================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 118

def cast_bound_value(...)
  pure_remote_dispatch(:cast_bound_value, ...)
end

#change_column

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 218

def change_column(...)
  remote_dispatch(:change_column, ...)
end

#change_column_comment

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 222

def change_column_comment(...)
  remote_dispatch(:change_column_comment, ...)
end

#change_column_default

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 226

def change_column_default(...)
  remote_dispatch(:change_column_default, ...)
end

#change_column_null

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 230

def change_column_null(...)
  remote_dispatch(:change_column_null, ...)
end

#change_table_comment

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 234

def change_table_comment(...)
  remote_dispatch(:change_table_comment, ...)
end

#check_constraints

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 238

def check_constraints(...)
  remote_dispatch(:check_constraints, ...)
end

#columns_for_distinct

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 242

def columns_for_distinct(...)
  remote_dispatch(:columns_for_distinct, ...)
end

#combine_multi_statements (private)

DATABASE STATEMENTS =====================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 325

def combine_multi_statements(...)
  remote_dispatch(:combine_multi_statements, ...)
end

#create_alter_table (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 335

def create_alter_table(...)
  remote_dispatch(:create_alter_table, ...)
end

#create_index_definition

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 168

def create_index_definition(...)
  remote_dispatch(:create_index_definition, ...)
end

#create_schema_dumper(options)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 172

def create_schema_dumper(options)
  MySQL::SchemaDumper.create(self, options)
end

#create_table

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 176

def create_table(...)
  remote_dispatch(:create_table, ...)
end

#data_source_sql (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 339

def data_source_sql(...)
  remote_dispatch(:data_source_sql, ...)
end

#default_index_type? ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 246

def default_index_type?(...)
  remote_dispatch(:default_index_type?, ...)
end

#default_insert_value

DATABASE STATEMENTS =====================================

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 140

def default_insert_value(...)
  remote_dispatch(:default_insert_value, ...)
end

#disable_index

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 250

def disable_index(...)
  remote_dispatch(:disable_index, ...)
end

#disable_referential_integrity

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 11

def disable_referential_integrity
  old = query_value("SELECT @@FOREIGN_KEY_CHECKS")

  begin
    update("SET FOREIGN_KEY_CHECKS = 0")
    yield
  ensure
    update("SET FOREIGN_KEY_CHECKS = #{old}") if active?
  end
end

#drop_table

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 254

def drop_table(...)
  remote_dispatch(:drop_table, ...)
end

#drop_table_sql (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 369

def drop_table_sql(...)
  remote_dispatch(:drop_table_sql, ...)
end

#empty_all_tables

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 258

def empty_all_tables
  remote_dispatch(:empty_all_tables)
end

#empty_insert_statement_value

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 262

def empty_insert_statement_value(...)
  remote_dispatch(:empty_insert_statement_value, ...)
end

#enable_index

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 266

def enable_index(...)
  remote_dispatch(:enable_index, ...)
end

#explain(arel_or_sql, binds = [], options = [])

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 144

def explain(arel_or_sql, binds = [], options = [])
  sql, binds = to_sql_and_binds(arel_or_sql, binds)
  sql = pure_remote_dispatch(:build_explain_clause, options) + " " + sql
  start   = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  result  = select_all(sql, "EXPLAIN", binds)
  elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start

  MySQL::ExplainPrettyPrinter.new.pp(result, elapsed)
end

#extract_foreign_key_action (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 343

def extract_foreign_key_action(...)
  remote_dispatch(:extract_foreign_key_action, ...)
end

#fetch_column_definitions (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 373

def fetch_column_definitions(...)
  remote_dispatch(:fetch_column_definitions, ...)
end

#fetch_table_options (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 377

def fetch_table_options(...)
  remote_dispatch(:fetch_table_options, ...)
end

#fetch_type_metadata (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 347

def (...)
  remote_dispatch(:, ...)
end

#foreign_keys

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 270

def foreign_keys(...)
  remote_dispatch(:foreign_keys, ...)
end

#get_advisory_lock

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 274

def get_advisory_lock(...)
  remote_dispatch(:get_advisory_lock, ...)
end

#get_database_version

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 278

def get_database_version
  remote_dispatch(:get_database_version)
end

#high_precision_current_timestamp

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 154

def high_precision_current_timestamp
  remote_dispatch(:high_precision_current_timestamp)
end

#index_algorithms

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 282

def index_algorithms
  remote_dispatch(:index_algorithms)
end

#indexes

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 180

def indexes(...)
  remote_dispatch(:indexes, ...)
end

#internal_string_options_for_primary_key

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 184

def internal_string_options_for_primary_key
  remote_dispatch(:internal_string_options_for_primary_key)
end

#quote_string

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 286

def quote_string(...)
  pure_remote_dispatch(:quote_string, ...)
end

#quoted_binary

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 122

def quoted_binary(...)
  pure_remote_dispatch(:quoted_binary, ...)
end

#quoted_scope (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 351

def quoted_scope(...)
  pure_remote_dispatch(:quoted_scope, ...)
end

#release_advisory_lock

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 290

def release_advisory_lock(...)
  remote_dispatch(:release_advisory_lock, ...)
end

#remove_foreign_key

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 188

def remove_foreign_key(...)
  remote_dispatch(:remove_foreign_key, ...)
end

#remove_index

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 294

def remove_index(...)
  remote_dispatch(:remove_index, ...)
end

#rename_column

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 298

def rename_column(...)
  remote_dispatch(:rename_column, ...)
end

#rename_index

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 302

def rename_index(...)
  remote_dispatch(:rename_index, ...)
end

#rename_table

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 306

def rename_table(...)
  remote_dispatch(:rename_table, ...)
end

#return_value_after_insert? ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 310

def return_value_after_insert?(...)
  remote_dispatch(:return_value_after_insert?, ...)
end

#table_alias_length

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 192

def table_alias_length
  remote_dispatch(:table_alias_length)
end

#table_comment

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 318

def table_comment(...)
  remote_dispatch(:table_comment, ...)
end

#type_cast

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 126

def type_cast(...)
  remote_dispatch(:type_cast, ...)
end

#type_to_sql

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 196

def type_to_sql(...)
  pure_remote_dispatch(:type_to_sql, ...)
end

#unquoted_false

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 130

def unquoted_false
  remote_dispatch(:unquoted_false)
end

#unquoted_true

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 134

def unquoted_true
  remote_dispatch(:unquoted_true)
end

#update_table_definition

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 200

def update_table_definition(...)
  remote_dispatch(:update_table_definition, ...)
end

#valid_index_options (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 355

def valid_index_options
  remote_dispatch(:valid_index_options)
end

#valid_primary_key_options (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 359

def valid_primary_key_options
  remote_dispatch(:valid_primary_key_options)
end

#warning_ignored? ⇒ Boolean (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 381

def warning_ignored?(...)
  remote_dispatch(:warning_ignored?, ...)
end

#write_query? ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/mysql_proxy_adapter.rb', line 158

def write_query?(...)
  remote_dispatch(:write_query?, ...)
end