backends library
Utility classes to implement custom database backends that work together with drift.
Classes
- ArgumentsForBatchedStatement
- Instruction to run a batched sql statement with the arguments provided.
- BatchedStatements
- Stores information needed to run batched statements in the order they were issued without preparing statements multiple times.
- DatabaseDelegate
- An interface that supports sending database queries. Used as a backend for drift.
- DbVersionDelegate
- An interface that supports setting the database version.
- DelegatedDatabase
- A database engine (implements QueryExecutor) that delegates the relevant work to a DatabaseDelegate.
- DynamicVersionDelegate
- A database that supports setting the schema version at any time.
- NoTransactionDelegate
-
A TransactionDelegate for database APIs which don't already support
creating transactions. Drift will send a
BEGIN TRANSACTION
statement at the beginning, then block the database, and finally send aCOMMIT
statement at the end. - NoVersionDelegate
- A database that doesn't support setting schema versions.
- OnOpenVersionDelegate
- A database that only support setting the schema version while being opened.
- QueryDelegate
- An interface which can execute sql statements.
- QueryExecutor
- A query executor is responsible for executing statements on a database and return their results in a raw form.
- QueryExecutorUser
- Callbacks passed to QueryExecutor.ensureOpen to run schema migrations when the database is first opened.
- QueryResult
- A result from an select statement.
- SupportedTransactionDelegate
- A TransactionDelegate for database APIs which do support creating and managing transactions themselves.
- TransactionDelegate
- An interface to start and manage transactions.
- TransactionExecutor
- A QueryExecutor that runs multiple queries atomically.
- WrappedTransactionDelegate
- A TransactionDelegate for database APIs that have it's own transaction function
Enums
- SqlDialect
- An enumeration of database systems supported by drift. Only SqlDialect.sqlite is officially supported, all others are in an experimental state at the moment.