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 (both legacy .json and binary .btree2).
final d = Directory(dir);
await for (final f in d.list()) {
final basename = f.path.split('/').last;
if (basename.startsWith('idx_${name}_')) {
await File(f.path).delete().catchError((_) => File(f.path));
}
}
final lsn = await wal.append(WalOp.dropTable, name, {});
pager.setWalFlushedLsn(lsn);
await _saveCatalog();
}