dropTable method
Implementation
Future<void> dropTable(String name) async {
if (!tables.containsKey(name)) {
throw Exception('Table "$name" does not exist');
}
tables.remove(name);
mvccTables.remove(name);
pageTables.remove(name);
btreeIndexes.remove(name);
statsRegistry.remove(name);
// Remove all index files
final names = await vfs.listNames(dir);
for (final fname in names) {
if (fname.startsWith('idx_${name}_')) {
await vfs.delete('$dir/$fname');
}
}
final lsn = await wal.append(WalOp.dropTable, name, {});
pager.setWalFlushedLsn(lsn);
await _saveCatalog();
}