AsyncPG¶
High-performance async PostgreSQL adapter using asyncpg. Supports native pipelines, Arrow export, and Cloud SQL / AlloyDB connectors.
Configuration¶
- class sqlspec.adapters.asyncpg.AsyncpgConfig[source]¶
Bases:
AsyncDatabaseConfig[PoolConnectionProxy,Pool[Record],AsyncpgDriver]Configuration for AsyncPG database connections using TypedDict.
Example:
config = AsyncpgConfig( connection_config=AsyncpgPoolConfig( dsn="postgresql://user:pass@localhost/db" ) )
- driver_type¶
alias of
AsyncpgDriver
- __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 AsyncPG configuration.
- Parameters:
connection_config¶ -- Connection and pool configuration parameters (TypedDict or dict)
connection_instance¶ -- Existing pool instance to use
migration_config¶ -- Migration configuration
statement_config¶ -- Statement configuration override
driver_features¶ -- Driver features configuration (TypedDict or dict)
bind_key¶ -- Optional unique identifier for this configuration
extension_config¶ -- Extension-specific configuration (e.g., Litestar plugin settings)
observability_config¶ -- Adapter-level observability overrides for lifecycle hooks and observers
**kwargs¶ -- Additional keyword arguments
- async create_connection()[source]¶
Create a single async connection from the pool.
- Return type:
PoolConnectionProxy- Returns:
An AsyncPG connection instance.
- provide_session(*_args, statement_config=None, **_kwargs)[source]¶
Provide an async driver session context manager.
- async provide_pool(*args, **kwargs)[source]¶
Provide async pool instance.
- Returns:
The async connection pool.
- get_signature_namespace()[source]¶
Get the signature namespace for AsyncPG types.
This provides all AsyncPG-specific types that Litestar needs to recognize to avoid serialization attempts.
JSON and JSONB Codecs¶
AsyncPG connections register binary json and jsonb codecs by default.
This lets regular statement execution and load_from_arrow() pass Python
dict and list values into PostgreSQL JSON / JSONB columns while
preserving asyncpg's binary COPY protocol expectations for jsonb payloads.
Set driver_features={"enable_json_codecs": False} when an application needs
to manage asyncpg JSON codecs manually.
- class sqlspec.adapters.asyncpg.config.AsyncpgPoolConfig[source]¶
Bases:
AsyncpgConnectionConfigTypedDict for AsyncPG pool parameters, inheriting connection parameters.
Driver¶
- class sqlspec.adapters.asyncpg.AsyncpgDriver[source]¶
Bases:
AsyncDriverAdapterBaseAsyncPG PostgreSQL driver for async database operations.
Supports COPY operations, numeric parameter style handling, PostgreSQL exception handling, transaction management, SQL statement compilation and caching, and parameter processing with type coercion.
- __init__(connection, statement_config=None, driver_features=None)[source]¶
Initialize driver adapter with connection and configuration.
- Parameters:
connection¶ (
PoolConnectionProxy) -- Database connection instancestatement_config¶ (
StatementConfig|None) -- Statement configuration for the driverdriver_features¶ (
dict[str, typing.Any] |None) -- Driver-specific features like extensions, secrets, and connection callbacksobservability¶ -- Optional runtime handling lifecycle hooks, observers, and spans
- async dispatch_execute(cursor, statement)[source]¶
Execute single SQL statement.
Handles both SELECT queries and non-SELECT operations.
- async dispatch_execute_many(cursor, statement)[source]¶
Execute SQL with multiple parameter sets using AsyncPG's executemany.
- async dispatch_execute_script(cursor, statement)[source]¶
Execute SQL script with statement splitting and parameter handling.
- async dispatch_special_handling(cursor, statement)[source]¶
Handle PostgreSQL COPY operations and other special cases.
- with_cursor(connection)[source]¶
Create context manager for AsyncPG cursor.
- Return type:
AsyncpgCursor
- handle_database_exceptions()[source]¶
Handle database exceptions with PostgreSQL error codes.
- Return type:
AsyncpgExceptionHandler
- async execute_stack(stack, *, continue_on_error=False)[source]¶
Execute a StatementStack using asyncpg's rapid batching.
- Return type:
- async select_to_storage(statement, destination, /, *parameters, statement_config=None, partitioner=None, format_hint=None, telemetry=None, **kwargs)[source]¶
Execute a query and persist results to storage once native COPY is available.
- Return type:
- async load_from_arrow(table, source, *, partitioner=None, overwrite=False, telemetry=None)[source]¶
Load Arrow data into a PostgreSQL table via COPY.
- Return type:
- async load_from_storage(table, source, *, file_format, partitioner=None, overwrite=False)[source]¶
Read an artifact from storage and ingest it via COPY.
- Return type:
- property data_dictionary: AsyncpgDataDictionary¶
Get the data dictionary for this driver.
- Returns:
Data dictionary instance for metadata queries
Extension Dialects¶
AsyncPG supports the pgvector and ParadeDB dialects for vector similarity search and full-text search operators. See the Dialects reference for operator details.
Data Dictionary¶
- class sqlspec.adapters.asyncpg.data_dictionary.AsyncpgDataDictionary[source]¶
Bases:
AsyncDataDictionaryBasePostgreSQL-specific async data dictionary.
- dialect: ClassVar[str] = 'postgres'¶
Dialect identifier. Must be defined by subclasses as a class attribute.
- async get_version(driver)[source]¶
Get PostgreSQL database version information.
- Parameters:
driver¶ (
AsyncpgDriver) -- Async database driver instance.- Return type:
- Returns:
PostgreSQL version information or None if detection fails.
- async get_feature_flag(driver, feature)[source]¶
Check if PostgreSQL database supports a specific feature.
- Parameters:
driver¶ (
AsyncpgDriver) -- Async database driver instance.
- Return type:
- Returns:
True if feature is supported, False otherwise.
- async get_optimal_type(driver, type_category)[source]¶
Get optimal PostgreSQL type for a category.
- Parameters:
driver¶ (
AsyncpgDriver) -- Async database driver instance.
- Return type:
- Returns:
PostgreSQL-specific type name.
- async get_tables(driver, schema=None)[source]¶
Get tables sorted by topological dependency order using Recursive CTE.
- Return type:
- async get_columns(driver, table=None, schema=None)[source]¶
Get column information for a table or schema.
- Return type:
- async get_indexes(driver, table=None, schema=None)[source]¶
Get index metadata for a table or schema.
- Return type: