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
path
in the virtual file system of thesqlite3
module. IffileSystem
provided, 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
sqlite3
database.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
database
from thesqlite3
package.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
this
executor 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
-
interceptWith(
QueryInterceptor interceptor) → QueryExecutor -
Available on QueryExecutor, provided by the ApplyInterceptor extension
Returns a QueryExecutor that will usethis
executor 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.