From 07ed4843b749adb0bf35f422012b5c2af53f4a0b Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Thu, 23 Oct 2025 18:08:54 +0200 Subject: [PATCH] Soft clear: Delete $local bucket --- crates/core/src/view_admin.rs | 1 + dart/test/sync_test.dart | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/core/src/view_admin.rs b/crates/core/src/view_admin.rs index b767ed9c..040108b2 100644 --- a/crates/core/src/view_admin.rs +++ b/crates/core/src/view_admin.rs @@ -159,6 +159,7 @@ fn powersync_clear_impl( local_db.exec_safe("DELETE FROM ps_oplog; DELETE FROM ps_buckets")?; } else { local_db.exec_safe("UPDATE ps_buckets SET last_applied_op = 0")?; + local_db.exec_safe("DELETE FROM ps_buckets WHERE name = '$local'")?; } // language=SQLite diff --git a/dart/test/sync_test.dart b/dart/test/sync_test.dart index 9fa92676..b8477499 100644 --- a/dart/test/sync_test.dart +++ b/dart/test/sync_test.dart @@ -376,12 +376,16 @@ void _syncTests({ pushSyncData('a', '1', 'row-0', 'PUT', {'col': 'hi'}); pushCheckpointComplete(); - expect(db.select('SELECT * FROM items'), hasLength(1)); + db.execute( + 'insert into items (id, col) values (uuid(), ?)', ['local item']); + expect(db.select('SELECT * FROM items'), hasLength(2)); // Soft clear db.execute('SELECT powersync_clear(2)'); db.select('select powersync_replace_schema(?)', [json.encode(testSchema)]); expect(db.select('SELECT * FROM items'), hasLength(0)); + expect( + db.select(r"SELECT * FROM ps_buckets WHERE name = '$local'"), isEmpty); final request = invokeControl('start', null); expect(