Skip to content

Commit e57b4e2

Browse files
committed
WIP
1 parent 3c2b4d2 commit e57b4e2

File tree

10 files changed

+26
-7
lines changed

10 files changed

+26
-7
lines changed

.DS_Store

6 KB
Binary file not shown.

packages/drift_sqlite_async/lib/src/connection.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import 'package:sqlite_async/sqlite_async.dart';
1515
class SqliteAsyncDriftConnection extends DatabaseConnection {
1616
late StreamSubscription _updateSubscription;
1717

18-
SqliteAsyncDriftConnection(SqliteConnection db)
19-
: super(SqliteAsyncQueryExecutor(db)) {
18+
SqliteAsyncDriftConnection(SqliteConnection db, {bool logStatements = false})
19+
: super(SqliteAsyncQueryExecutor(db, logStatements: logStatements)) {
2020
_updateSubscription = (db as SqliteQueries).updates!.listen((event) {
2121
var setUpdates = <TableUpdate>{};
2222
for (var tableName in event.tables) {

packages/drift_sqlite_async/lib/src/executor.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ class _SqliteAsyncDelegate extends DatabaseDelegate {
99
final SqliteConnection db;
1010
bool _closed = false;
1111

12-
_SqliteAsyncDelegate(this.db);
12+
_SqliteAsyncDelegate(
13+
this.db,
14+
);
1315

1416
@override
1517
late final DbVersionDelegate versionDelegate =
@@ -127,10 +129,8 @@ class _SqliteAsyncVersionDelegate extends DynamicVersionDelegate {
127129
/// Extnral update notifications from the [SqliteConnection] are _not_ forwarded
128130
/// automatically - use [SqliteAsyncDriftConnection] for that.
129131
class SqliteAsyncQueryExecutor extends DelegatedDatabase {
130-
SqliteAsyncQueryExecutor(SqliteConnection db)
131-
: super(
132-
_SqliteAsyncDelegate(db),
133-
);
132+
SqliteAsyncQueryExecutor(SqliteConnection db, {bool logStatements = false})
133+
: super(_SqliteAsyncDelegate(db), logStatements: logStatements);
134134

135135
/// The underlying SqliteConnection used by drift to send queries.
136136
SqliteConnection get db {

packages/sqlite_async/lib/src/common/sqlite_database.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ abstract class SqliteDatabase
5050
/// The maximum number of concurrent read transactions if not explicitly specified.
5151
static const int defaultMaxReaders = 5;
5252

53+
int get numConnections;
54+
5355
/// Open a SqliteDatabase.
5456
///
5557
/// Only a single SqliteDatabase per [path] should be opened at a time.

packages/sqlite_async/lib/src/impl/stub_sqlite_database.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,7 @@ class SqliteDatabaseImpl
6464
Future<bool> getAutoCommit() {
6565
throw UnimplementedError();
6666
}
67+
68+
@override
69+
int get numConnections => throw UnimplementedError();
6770
}

packages/sqlite_async/lib/src/native/database/connection_pool.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ class SqliteConnectionPool with SqliteQueries implements SqliteConnection {
232232
await connection.refreshSchema();
233233
}
234234
}
235+
236+
getNumConnections() {
237+
return _allReadConnections.length + (_writeConnection == null ? 0 : 1);
238+
}
235239
}
236240

237241
typedef ReadCallback<T> = Future<T> Function(SqliteReadContext tx);

packages/sqlite_async/lib/src/native/database/native_sqlite_connection_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class SqliteConnectionImpl
9595

9696
@override
9797
Future<void> close() async {
98+
print("Closing native sqlite Connection ${StackTrace.current}");
9899
eventsPort?.close();
99100
await _connectionMutex.lock(() async {
100101
if (readOnly) {

packages/sqlite_async/lib/src/native/database/native_sqlite_database.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ class SqliteDatabaseImpl
4040
late final SqliteConnectionImpl _internalConnection;
4141
late final SqliteConnectionPool _pool;
4242

43+
@override
44+
int get numConnections => _pool.getNumConnections();
45+
4346
final StreamController<UpdateNotification> updatesController =
4447
StreamController.broadcast();
4548

packages/sqlite_async/lib/src/web/database.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ class WebDatabase
129129
}
130130
}
131131
}
132+
133+
@override
134+
int get numConnections => 0;
132135
}
133136

134137
class _SharedContext implements SqliteReadContext {

packages/sqlite_async/lib/src/web/database/web_sqlite_database.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,7 @@ class SqliteDatabaseImpl
139139
await isInitialized;
140140
return _connection.getAutoCommit();
141141
}
142+
143+
@override
144+
int get numConnections => 0;
142145
}

0 commit comments

Comments
 (0)