DatabaseConnection constructor

DatabaseConnection(
  1. QueryExecutor executor, {
  2. StreamQueryStore? streamQueries,
  3. FutureOr<Object?> connectionData,
  4. bool closeStreamsSynchronously = false,
})

Constructs a raw database connection from the executor and optionally a specified streamQueries implementation to use.

When creating a default stream query implementation, closeStreamsSynchronously determines whether drift stops query streams immediately after the last listener detaches. By default, drift will wait for one event loop iteration to avoid duplicate work for e.g. StreamBuilder setups that reconnect on rebuilds. Enabling that option may be useful in test setups that throw exceptions for timers persisting after tests.

Implementation

DatabaseConnection(
  this.executor, {
  StreamQueryStore? streamQueries,
  this.connectionData,
  bool closeStreamsSynchronously = false,
}) : streamQueries = streamQueries ??
          switch (executor) {
            DatabaseConnection() => executor.streamQueries,
            _ => StreamQueryStore(
                closeStreamsSynchronously: closeStreamsSynchronously)
          };