@@ -7,11 +7,18 @@ import 'database_api.dart';
7
7
final _sqlEngine = SqlEngine ();
8
8
9
9
/// Intercepts CREATE TABLE queries to assist with table creation and updates.
10
- /// Does not affect any other query types.
11
- class CrdtTableExecutor {
10
+ /// Does not impact any other query types.
11
+ class CrdtTableExecutor extends _CrdtTableExecutor {
12
+ CrdtTableExecutor (ReadWriteApi super ._db);
13
+
14
+ Future <List <Map <String , Object ?>>> query (String sql, [List <Object ?>? args]) =>
15
+ (_db as ReadWriteApi ).query (sql, args);
16
+ }
17
+
18
+ class _CrdtTableExecutor {
12
19
final WriteApi _db;
13
20
14
- CrdtTableExecutor (this ._db);
21
+ _CrdtTableExecutor (this ._db);
15
22
16
23
/// Executes a SQL query with an optional [args] list.
17
24
/// Use "?" placeholders for parameters to avoid injection vulnerabilities:
@@ -93,13 +100,20 @@ class CrdtTableExecutor {
93
100
}
94
101
}
95
102
96
- class CrdtExecutor extends CrdtTableExecutor {
103
+ class CrdtExecutor extends CrdtWriteExecutor {
104
+ CrdtExecutor (ReadWriteApi super ._db, super .hlc);
105
+
106
+ Future <List <Map <String , Object ?>>> query (String sql, [List <Object ?>? args]) =>
107
+ (_db as ReadWriteApi ).query (sql, args);
108
+ }
109
+
110
+ class CrdtWriteExecutor extends _CrdtTableExecutor {
97
111
final Hlc hlc;
98
112
late final _hlcString = hlc.toString ();
99
113
100
114
final affectedTables = < String > {};
101
115
102
- CrdtExecutor (super ._db, this .hlc);
116
+ CrdtWriteExecutor (super ._db, this .hlc);
103
117
104
118
@override
105
119
Future <void > _executeStatement (
0 commit comments