Skip to content

Commit 3c7d533

Browse files
committed
Fix for view aliases.
1 parent 3335c16 commit 3c7d533

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

packages/powersync/lib/src/schema_logic.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,13 @@ void updateSchema(sqlite.Database db, Schema schema) {
187187
Set<String> toRemove = {for (var row in existingViewRows) row['name']};
188188

189189
for (var table in schema.tables) {
190-
toRemove.remove(table.name);
190+
toRemove.remove(table.viewName);
191191

192192
var createViewOp = createViewStatement(table);
193193
var triggers = createViewTriggerStatements(table);
194194
var existingRows = db.select(
195195
"SELECT sql FROM sqlite_master WHERE (type = 'view' AND name = ?) OR (type = 'trigger' AND tbl_name = ?) ORDER BY type DESC, name ASC",
196-
[table.name, table.name]);
196+
[table.viewName, table.viewName]);
197197
if (existingRows.isNotEmpty) {
198198
final dbSql = existingRows.map((row) => row['sql']).join('\n\n');
199199
final generatedSql =
@@ -203,7 +203,7 @@ void updateSchema(sqlite.Database db, Schema schema) {
203203
continue;
204204
} else {
205205
// View and/or triggers changed - delete and re-create.
206-
db.execute('DROP VIEW ${quoteIdentifier(table.name)}');
206+
db.execute('DROP VIEW ${quoteIdentifier(table.viewName)}');
207207
}
208208
} else {
209209
// New - create

packages/powersync/test/schema_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ final schema = Schema([
2020
Table('customers', [Column.text('name'), Column.text('email')]),
2121
Table.insertOnly('logs', [Column.text('level'), Column.text('content')]),
2222
Table.localOnly('credentials', [Column.text('key'), Column.text('value')]),
23+
Table('aliased', [Column.text('name')], viewName: 'test1')
2324
]);
2425

2526
void main() {
@@ -63,6 +64,7 @@ void main() {
6364
'logs', [Column.text('level'), Column.text('content')]),
6465
Table.localOnly(
6566
'credentials', [Column.text('key'), Column.text('value')]),
67+
Table('aliased', [Column.text('name')], viewName: 'test1')
6668
]);
6769

6870
await powersync.updateSchema(schema2);
@@ -92,6 +94,7 @@ void main() {
9294
'logs', [Column.text('level'), Column.text('content')]),
9395
Table.localOnly(
9496
'credentials', [Column.text('key'), Column.text('value')]),
97+
Table('aliased', [Column.text('name')], viewName: 'test1')
9598
]);
9699

97100
await powersync.updateSchema(schema3);

0 commit comments

Comments
 (0)