asyncmy#

Async MySQL driver.

Configuration#

class sqlspec.adapters.asyncmy.AsyncmyConfig[source]#

Bases: AsyncDatabaseConfig[Connection, AsyncmyPool, AsyncmyDriver]

Configuration for Asyncmy database connections.

driver_type#

alias of AsyncmyDriver

__init__(*, connection_config=None, connection_instance=None, migration_config=None, statement_config=None, driver_features=None, bind_key=None, extension_config=None, observability_config=None, **kwargs)[source]#

Initialize Asyncmy configuration.

Parameters:
  • connection_config -- Connection and pool configuration parameters

  • connection_instance -- Existing pool instance to use

  • migration_config -- Migration configuration

  • statement_config -- Statement configuration override

  • driver_features -- Driver feature configuration (TypedDict or dict)

  • bind_key -- Optional unique identifier for this configuration

  • extension_config -- Extension-specific configuration

  • observability_config -- Adapter-level observability overrides for lifecycle hooks and observers

  • **kwargs -- Additional keyword arguments

async create_connection()[source]#

Create a single async connection (not from pool).

Return type:

Connection

Returns:

An Asyncmy connection instance.

async provide_pool(*args, **kwargs)[source]#

Provide async pool instance.

Return type:

Pool

Returns:

The async connection pool.

get_signature_namespace()[source]#

Get the signature namespace for Asyncmy types.

Return type:

dict[str, typing.Any]

Returns:

Dictionary mapping type names to types.

get_event_runtime_hints()[source]#

Return queue polling defaults for Asyncmy adapters.

Return type:

EventRuntimeHints

Driver#

class sqlspec.adapters.asyncmy.AsyncmyDriver[source]#

Bases: AsyncDriverAdapterBase

MySQL/MariaDB database driver using AsyncMy client library.

Implements asynchronous database operations for MySQL and MariaDB servers with support for parameter style conversion, type coercion, error handling, and transaction management.

__init__(connection, statement_config=None, driver_features=None)[source]#

Initialize driver adapter with connection and configuration.

Parameters:
  • connection (Connection) -- Database connection instance

  • statement_config (StatementConfig | None) -- Statement configuration for the driver

  • driver_features (dict[str, typing.Any] | None) -- Driver-specific features like extensions, secrets, and connection callbacks

  • observability -- Optional runtime handling lifecycle hooks, observers, and spans

async dispatch_execute(cursor, statement)[source]#

Execute single SQL statement.

Handles parameter processing, result fetching, and data transformation for MySQL/MariaDB operations.

Parameters:
  • cursor (Any) -- AsyncMy cursor object

  • statement (SQL) -- SQL statement to execute

Returns:

Statement execution results with data or row counts

Return type:

ExecutionResult

async dispatch_execute_many(cursor, statement)[source]#

Execute SQL statement with multiple parameter sets.

Uses AsyncMy's executemany for batch operations with MySQL type conversion and parameter processing.

Parameters:
  • cursor (Any) -- AsyncMy cursor object

  • statement (SQL) -- SQL statement with multiple parameter sets

Returns:

Batch execution results

Return type:

ExecutionResult

async dispatch_execute_script(cursor, statement)[source]#

Execute SQL script with statement splitting and parameter handling.

Splits multi-statement scripts and executes each statement sequentially. Parameters are embedded as static values for script execution compatibility.

Parameters:
  • cursor (Any) -- AsyncMy cursor object

  • statement (SQL) -- SQL script to execute

Returns:

Script execution results with statement count

Return type:

ExecutionResult

async begin()[source]#

Begin a database transaction.

Explicitly starts a MySQL transaction to ensure proper transaction boundaries.

Raises:

SQLSpecError -- If transaction initialization fails

Return type:

None

async commit()[source]#

Commit the current transaction.

Raises:

SQLSpecError -- If transaction commit fails

Return type:

None

async rollback()[source]#

Rollback the current transaction.

Raises:

SQLSpecError -- If transaction rollback fails

Return type:

None

with_cursor(connection)[source]#

Create cursor context manager for the connection.

Parameters:

connection (Connection) -- AsyncMy database connection

Returns:

Context manager for cursor operations

Return type:

AsyncmyCursor

dispatch_select_stream(statement, chunk_size)[source]#

Return a native asyncmy row stream backed by an unbuffered SSCursor.

Return type:

Optional[AsyncRowStream[dict[str, typing.Any]]]

handle_database_exceptions()[source]#

Provide exception handling context manager.

Returns:

Context manager for AsyncMy exception handling

Return type:

AsyncmyExceptionHandler

async select_to_storage(statement, destination, /, *parameters, statement_config=None, partitioner=None, format_hint=None, telemetry=None, **kwargs)[source]#

Execute a query and stream Arrow-formatted results into storage.

Return type:

StorageBridgeJob

async load_from_arrow(table, source, *, partitioner=None, overwrite=False, telemetry=None)[source]#

Load Arrow data into MySQL using batched inserts.

Return type:

StorageBridgeJob

async load_from_storage(table, source, *, file_format, partitioner=None, overwrite=False)[source]#

Load staged artifacts from storage into MySQL.

Return type:

StorageBridgeJob

property data_dictionary: AsyncmyDataDictionary#

Get the data dictionary for this driver.

Returns:

Data dictionary instance for metadata queries

collect_rows(cursor, fetched)[source]#

Collect asyncmy rows for the direct execution path.

Return type:

tuple[list[typing.Any], list[str], int]

resolve_rowcount(cursor)[source]#

Resolve rowcount from asyncmy cursor for the direct execution path.

Return type:

int

Data Dictionary#

class sqlspec.adapters.asyncmy.data_dictionary.AsyncmyDataDictionary[source]#

Bases: AsyncDataDictionaryBase

MySQL-specific async data dictionary.

dialect: ClassVar[str] = 'mysql'#

Dialect identifier. Must be defined by subclasses as a class attribute.

__init__()[source]#
async get_version(driver)[source]#

Get MySQL database version information.

Return type:

VersionInfo | None

async get_feature_flag(driver, feature)[source]#

Check if MySQL database supports a specific feature.

Return type:

bool

async get_metadata_capabilities(driver, domains=None)[source]#

Get data-dictionary capability profile.

Return type:

MetadataCapabilityProfile

async get_schemas(driver)[source]#

Get schema metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_objects(driver, schema=None)[source]#

Get object metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_table_details(driver, table, schema=None)[source]#

Get rich table metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_constraints(driver, table=None, schema=None)[source]#

Get constraint metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_views(driver, schema=None)[source]#

Get view metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_routines(driver, schema=None)[source]#

Get routine metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_privileges(driver, object_name=None, schema=None)[source]#

Get privilege metadata from INFORMATION_SCHEMA.

Return type:

MetadataResult

async get_ddl(driver, object_name, schema=None, *, object_type='table', include_dependencies=True, prefer_native=True, redact=True)[source]#

Get native SHOW CREATE output and replay-sensitive context for a table.

Return type:

DDLResult

async get_system_metadata(driver, request=None, **kwargs)[source]#

Get opt-in system metadata from performance_schema or sys.

Return type:

SystemMetadataResult

async get_optimal_type(driver, type_category)[source]#

Get optimal MySQL type for a category.

Return type:

str

async get_tables(driver, schema=None)[source]#

Get tables sorted by topological dependency order using the MySQL catalog.

Return type:

list[TableMetadata]

async get_columns(driver, table=None, schema=None)[source]#

Get column information for a table or schema.

Return type:

list[ColumnMetadata]

async get_indexes(driver, table=None, schema=None)[source]#

Get index metadata for a table or schema.

Return type:

list[IndexMetadata]

async get_foreign_keys(driver, table=None, schema=None)[source]#

Get foreign key metadata.

Return type:

list[ForeignKeyMetadata]