WasmDatabase class
An experimental, WebAssembly based implementation of a drift sqlite3 database.
Using this database requires adding a WebAssembly file for sqlite3 to your app. The documentation describes how to obtain this file. A working example is also available in the drift repository.
- Inheritance
-
- Object
- QueryExecutor
- DelegatedDatabase
- WasmDatabase
- Available extensions
Constructors
- WasmDatabase({required CommonSqlite3 sqlite3, required String path, WasmDatabaseSetup? setup, IndexedDbFileSystem? fileSystem, bool logStatements = false, bool enableMigrations = true, bool cachePreparedStatements = true})
-
Creates a wasm database at
pathin the virtual file system of thesqlite3module. IffileSystemprovided, the data is guaranteed to be stored in the IndexedDB when the request is complete. Attention! Insert/update queries may be slower when this option enabled. If you want to insert more than one rows, be sure you run in a transaction if possible.factory - WasmDatabase.inMemory(CommonSqlite3 sqlite3, {WasmDatabaseSetup? setup, bool logStatements = false, bool cachePreparedStatements = true})
-
Creates an in-memory database in the loaded
sqlite3database.factory - WasmDatabase.opened(CommonDatabase database, {bool logStatements = false, WasmDatabaseSetup? setup, bool closeUnderlyingOnClose = true, bool enableMigrations = true, bool cachePreparedStatements = true})
-
Creates a drift executor for an opened
databasefrom thesqlite3package.factory
Properties
- delegate → DatabaseDelegate
-
The DatabaseDelegate to send queries to.
finalinherited
- dialect → SqlDialect
-
The SqlDialect to use for this database engine.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- impl → QueryDelegate
-
no setterinherited
- isSequential → bool
-
finalinherited
- logStatements ↔ bool
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
beginExclusive(
) → QueryExecutor -
Returns a new QueryExecutor that, when first opened, takes an exclusive
lock over
thisexecutor and prevents queries from running until it is closed.inherited -
beginTransaction(
) → TransactionExecutor -
Starts a TransactionExecutor.
inherited
-
beginTransactionInContext(
_BaseExecutor context) → TransactionExecutor -
inherited
-
close(
) → Future< void> -
Closes this database connection and releases all resources associated with
it. Implementations should also handle close calls in a state where the
database isn't open.
inherited
-
ensureOpen(
QueryExecutorUser user) → Future< bool> -
Opens the executor, if it has not yet been opened.
inherited
-
externalExecutor(
QueryDelegate delegate) → QueryExecutor -
Returns a QueryExecutor delegating calls to another QueryDelegate.
inherited
-
interceptWith(
QueryInterceptor interceptor) → QueryExecutor -
Available on QueryExecutor, provided by the ApplyInterceptor extension
Returns a QueryExecutor that will usethisexecutor internally, but with calls intercepted by the giveninterceptor. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
runBatched(
BatchedStatements statements) → Future< void> -
Prepares and runs
statements.inherited -
runCustom(
String statement, [List< Object?> ? args]) → Future<void> -
Runs a custom SQL statement without any variables. The result of that
statement will be ignored.
inherited
-
runDelete(
String statement, List< Object?> args) → Future<int> -
Runs an delete statement and returns how many rows where affected.
inherited
-
runInsert(
String statement, List< Object?> args) → Future<int> -
Runs an insert statement with the given variables. Returns the row id or
the auto_increment id of the inserted row.
inherited
-
runSelect(
String statement, List< Object?> args) → Future<List< Map< >String, Object?> > -
Runs a select statement with the given variables and returns the raw
results.
inherited
-
runUpdate(
String statement, List< Object?> args) → Future<int> -
Runs an update statement with the given variables and returns how many
rows where affected.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
open(
{required String databaseName, required Uri sqlite3Uri, required Uri driftWorkerUri, FutureOr< Uint8List?> initializeDatabase()?, WasmDatabaseSetup? localSetup, bool enableMigrations = true}) → Future<WasmDatabaseResult> - Opens a database on the web.
-
probe(
{required Uri sqlite3Uri, required Uri driftWorkerUri, String? databaseName}) → Future< WasmProbeResult> - Probes for:
-
workerMainForOpen(
{WasmDatabaseSetup? setupAllDatabases}) → void - The entrypoint for a web worker suitable for use with open.