🐛 fix(sidebar): 修复 Oracle 表元数据显示缺失

- Oracle/Dameng 表元数据查询移除 ALL_SEGMENTS 依赖
- 使用 ALL_TABLES.BLOCKS 轻量估算表大小,避免权限或大库聚合失败
- 保留表注释、行数、创建时间和最后 DDL 时间展示
- 补充 Oracle-like 元数据 SQL 回归断言
This commit is contained in:
Syngnat
2026-07-02 15:21:45 +08:00
parent 0707d60f0b
commit 275d490ca7
3 changed files with 9 additions and 4 deletions

View File

@@ -12,9 +12,14 @@ describe('Sidebar Dameng table count regression', () => {
expect(damengSql).toContain('owner AS schema_name');
expect(damengSql).toContain('comments AS table_comment');
expect(damengSql).toContain('COALESCE(t.blocks, 0) * 8192 AS table_size');
expect(damengSql).not.toContain('all_segments');
expect(oracleSql).toContain('owner AS schema_name');
expect(oracleSql).toContain('COALESCE(t.blocks, 0) * 8192 AS table_size');
expect(oracleSql).not.toContain('all_segments');
expect(loaderSource).toContain('const tableSchemaMap = new Map<string, string>();');
expect(loaderSource).toContain('const tableMetadataMap = new Map<string, SidebarTableMetadataSnapshot & { schemaName?: string }>();');
expect(loaderSource).toContain('const buildTableMetadataKeys = (rawTableName: string, rawSchemaName = \'\'): string[] => {');
expect(loaderSource).toContain("getCaseInsensitiveValue(row, ['schema_name', 'SCHEMA_NAME', 'owner', 'OWNER'])");
expect(loaderSource).toContain('const normalizedSchemaRows = schemaRows');
expect(loaderSource).toContain('normalizedSchemaRows.length !== 1');