IOdbcRepository class abstract

Repository interface for ODBC database operations.

Defines the contract for all ODBC operations including connection management, query execution, transactions, prepared statements, connection pooling, and catalog queries.

Implementations should handle errors and return Result types for type-safe error handling.

Implementers

Constructors

IOdbcRepository()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

asyncCancel(int requestId) Future<Result<Unit>>
Requests cancellation of async query request.
asyncFree(int requestId) Future<Result<Unit>>
Frees async query request resources.
asyncGetResult(int requestId, {int? maxBufferBytes}) Future<Result<QueryResult>>
Retrieves async query result payload and parses it as QueryResult.
asyncPoll(int requestId) Future<Result<int>>
Polls async query request status.
beginTransaction(String connectionId, IsolationLevel isolationLevel) Future<Result<int>>
Begins a new transaction with the specified isolation level.
bulkInsert(String connectionId, String table, List<String> columns, List<int> dataBuffer, int rowCount) Future<Result<int>>
Performs a bulk insert operation.
bulkInsertParallel(int poolId, String table, List<String> columns, List<int> dataBuffer, int rowCount, {int parallelism = 0}) Future<Result<int>>
Performs parallel bulk insert using a pool.
cancelStatement(String connectionId, int stmtId) Future<Result<Unit>>
Attempts to cancel an executing prepared statement.
cancelStream(int streamId) Future<Result<Unit>>
Attempts to cancel an active low-level stream by streamId.
catalogColumns(String connectionId, String table) Future<Result<QueryResult>>
Queries the database catalog for column information.
catalogForeignKeys(String connectionId, String table) Future<Result<QueryResult>>
Queries the database catalog for foreign key information.
catalogIndexes(String connectionId, String table) Future<Result<QueryResult>>
Queries the database catalog for index information.
catalogPrimaryKeys(String connectionId, String table) Future<Result<QueryResult>>
Queries the database catalog for primary key information.
catalogTables(String connectionId, {String catalog = '', String schema = ''}) Future<Result<QueryResult>>
Queries the database catalog for table information.
catalogTypeInfo(String connectionId) Future<Result<QueryResult>>
Queries the database catalog for data type information.
clearAuditEvents() Future<Result<Unit>>
Clears all native audit events.
clearMetadataCache() Future<Result<Unit>>
Clears all metadata cache entries.
clearStatementCache() Future<Result<Unit>>
Clears all cached prepared statements.
closeStatement(String connectionId, int stmtId) Future<Result<Unit>>
Closes and releases a prepared statement.
commitTransaction(String connectionId, int txnId) Future<Result<Unit>>
Commits a transaction.
connect(String connectionString, {ConnectionOptions? options}) Future<Result<Connection>>
Establishes a new database connection.
createSavepoint(String connectionId, int txnId, String name) Future<Result<Unit>>
Creates a savepoint within an active transaction.
detectDriver(String connectionString) Future<String?>
Detects the database driver from a connection string.
disconnect(String connectionId) Future<Result<Unit>>
Closes and disconnects a connection.
executeAsyncStart(String connectionId, String sql) Future<Result<int>>
Starts async query request lifecycle and returns request ID.
executePrepared(String connectionId, int stmtId, List? params, StatementOptions? options) Future<Result<QueryResult>>
Executes a prepared statement with optional parameters.
executePreparedNamed(String connectionId, int stmtId, Map<String, Object?> namedParams, StatementOptions? options) Future<Result<QueryResult>>
Executes a prepared statement using named parameters.
executeQuery(String connectionId, String sql) Future<Result<QueryResult>>
Executes a SQL query and returns the result set.
executeQueryMulti(String connectionId, String sql) Future<Result<QueryResult>>
Executes a SQL query that returns multiple result sets.
executeQueryMultiFull(String connectionId, String sql) Future<Result<QueryResultMulti>>
Executes a SQL query and returns all multi-result items.
executeQueryNamed(String connectionId, String sql, Map<String, Object?> namedParams) Future<Result<QueryResult>>
Executes a SQL query with named parameters.
executeQueryParams(String connectionId, String sql, List params) Future<Result<QueryResult>>
Executes a SQL query with parameters.
getAuditEvents({int limit = 0}) Future<Result<List<Map<String, Object?>>>>
Returns native audit events payload.
getAuditStatus() Future<Result<Map<String, Object?>>>
Returns current native audit status as key/value payload.
getDriverCapabilities(String connectionString) Future<Result<Map<String, Object?>>>
Returns driver capability payload for connectionString.
getMetrics() Future<Result<OdbcMetrics>>
Gets performance and operational metrics.
getPreparedStatementsMetrics() Future<Result<PreparedStatementMetrics>>
Gets metrics for prepared statement cache and execution.
getVersion() Future<Result<Map<String, String>>>
Returns engine version payload (api and abi).
initialize() Future<Result<Unit>>
Initializes the ODBC environment.
isInitialized() bool
Checks if the ODBC environment has been initialized.
metadataCacheEnable({required int maxEntries, required int ttlSeconds}) Future<Result<Unit>>
Enables or reconfigures metadata cache.
metadataCacheStats() Future<Result<Map<String, Object?>>>
Returns metadata cache statistics as a JSON-like map.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
poolClose(int poolId) Future<Result<Unit>>
Closes the connection pool and releases all connections.
poolCreate(String connectionString, int maxSize) Future<Result<int>>
Creates a new connection pool.
poolGetConnection(int poolId) Future<Result<Connection>>
Gets a connection from the pool.
poolGetState(int poolId) Future<Result<PoolState>>
Gets the current state of the connection pool.
poolGetStateDetailed(int poolId) Future<Result<Map<String, Object?>>>
Gets detailed pool telemetry payload.
poolHealthCheck(int poolId) Future<Result<bool>>
Performs a health check on the connection pool.
poolReleaseConnection(String connectionId) Future<Result<Unit>>
Releases a connection back to the pool.
prepare(String connectionId, String sql, {int timeoutMs = 0}) Future<Result<int>>
Prepares a SQL statement for execution.
prepareNamed(String connectionId, String sql, {int timeoutMs = 0}) Future<Result<int>>
Prepares a SQL statement with named parameters.
releaseSavepoint(String connectionId, int txnId, String name) Future<Result<Unit>>
Releases a savepoint. The transaction remains active.
rollbackToSavepoint(String connectionId, int txnId, String name) Future<Result<Unit>>
Rolls back to a savepoint. The transaction remains active.
rollbackTransaction(String connectionId, int txnId) Future<Result<Unit>>
Rolls back a transaction.
setAuditEnabled({required bool enabled}) Future<Result<Unit>>
Enables/disables native audit collection.
streamPollAsync(int streamId) Future<Result<int>>
Polls async stream status.
streamQuery(String connectionId, String sql) Stream<Result<QueryResult>>
Executes a SQL query as an incremental stream of chunks.
streamStartAsync(String connectionId, String sql, {int fetchSize = 1000, int chunkSize = 64 * 1024}) Future<Result<int>>
Starts async stream lifecycle and returns stream ID.
toString() String
A string representation of this object.
inherited
validateConnectionString(String connectionString) Future<Result<Unit>>
Validates connection string format without opening a connection.

Operators

operator ==(Object other) bool
The equality operator.
inherited