universal-db-mcp 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +39 -0
  2. package/dist/adapters/dm.d.ts +5 -3
  3. package/dist/adapters/dm.d.ts.map +1 -1
  4. package/dist/adapters/dm.js +120 -100
  5. package/dist/adapters/dm.js.map +1 -1
  6. package/dist/adapters/gaussdb.d.ts +5 -3
  7. package/dist/adapters/gaussdb.d.ts.map +1 -1
  8. package/dist/adapters/gaussdb.js +121 -91
  9. package/dist/adapters/gaussdb.js.map +1 -1
  10. package/dist/adapters/goldendb.d.ts +5 -3
  11. package/dist/adapters/goldendb.d.ts.map +1 -1
  12. package/dist/adapters/goldendb.js +104 -55
  13. package/dist/adapters/goldendb.js.map +1 -1
  14. package/dist/adapters/highgo.d.ts +5 -3
  15. package/dist/adapters/highgo.d.ts.map +1 -1
  16. package/dist/adapters/highgo.js +123 -90
  17. package/dist/adapters/highgo.js.map +1 -1
  18. package/dist/adapters/kingbase.d.ts +5 -3
  19. package/dist/adapters/kingbase.d.ts.map +1 -1
  20. package/dist/adapters/kingbase.js +121 -91
  21. package/dist/adapters/kingbase.js.map +1 -1
  22. package/dist/adapters/mysql.d.ts +8 -3
  23. package/dist/adapters/mysql.d.ts.map +1 -1
  24. package/dist/adapters/mysql.js +112 -54
  25. package/dist/adapters/mysql.js.map +1 -1
  26. package/dist/adapters/oceanbase.d.ts +5 -3
  27. package/dist/adapters/oceanbase.d.ts.map +1 -1
  28. package/dist/adapters/oceanbase.js +104 -55
  29. package/dist/adapters/oceanbase.js.map +1 -1
  30. package/dist/adapters/oracle.d.ts +5 -3
  31. package/dist/adapters/oracle.d.ts.map +1 -1
  32. package/dist/adapters/oracle.js +128 -110
  33. package/dist/adapters/oracle.js.map +1 -1
  34. package/dist/adapters/polardb.d.ts +5 -3
  35. package/dist/adapters/polardb.d.ts.map +1 -1
  36. package/dist/adapters/polardb.js +104 -55
  37. package/dist/adapters/polardb.js.map +1 -1
  38. package/dist/adapters/postgres.d.ts +8 -3
  39. package/dist/adapters/postgres.d.ts.map +1 -1
  40. package/dist/adapters/postgres.js +131 -90
  41. package/dist/adapters/postgres.js.map +1 -1
  42. package/dist/adapters/sqlserver.d.ts +5 -3
  43. package/dist/adapters/sqlserver.d.ts.map +1 -1
  44. package/dist/adapters/sqlserver.js +113 -102
  45. package/dist/adapters/sqlserver.js.map +1 -1
  46. package/dist/adapters/tidb.d.ts +5 -3
  47. package/dist/adapters/tidb.d.ts.map +1 -1
  48. package/dist/adapters/tidb.js +109 -55
  49. package/dist/adapters/tidb.js.map +1 -1
  50. package/dist/adapters/vastbase.d.ts +5 -3
  51. package/dist/adapters/vastbase.d.ts.map +1 -1
  52. package/dist/adapters/vastbase.js +123 -90
  53. package/dist/adapters/vastbase.js.map +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -775,6 +775,45 @@ curl "http://localhost:3000/api/cache/status?sessionId=xxx"
775
775
  | 500 张表 | ~10-30 秒 | <10 毫秒 | 1000-3000x |
776
776
  | 1000+ 张表 | 可能超时 | <10 毫秒 | ∞ |
777
777
 
778
+ ### 批量查询优化
779
+
780
+ 除了缓存机制,本项目还对 Schema 获取进行了批量查询优化:
781
+
782
+ **优化前(N+1 查询问题)**:
783
+ ```
784
+ 100 张表 = 1次获取表列表 + 100次获取列信息 + 100次获取主键 + 100次获取索引 + 100次获取行数
785
+ = 401 次数据库查询
786
+ ```
787
+
788
+ **优化后(批量查询)**:
789
+ ```
790
+ 100 张表 = 1次获取所有列 + 1次获取所有主键 + 1次获取所有索引 + 1次获取所有行数
791
+ = 4 次数据库查询
792
+ ```
793
+
794
+ **首次加载性能提升**:
795
+
796
+ | 表数量 | 优化前 | 优化后 | 提升 |
797
+ |--------|--------|--------|------|
798
+ | 50 张表 | ~5 秒 | ~200 毫秒 | 25x |
799
+ | 100 张表 | ~10 秒 | ~300 毫秒 | 33x |
800
+ | 500 张表 | ~50 秒 | ~500 毫秒 | 100x |
801
+
802
+ 已优化的数据库适配器:
803
+ - MySQL、TiDB、OceanBase、PolarDB、GoldenDB(MySQL 兼容)
804
+ - PostgreSQL、KingbaseES、GaussDB、Vastbase、HighGo(PostgreSQL 兼容)
805
+ - SQL Server
806
+ - Oracle(使用 ALL_* 视图批量查询)
807
+ - 达梦 DM(使用 USER_* 视图批量查询)
808
+
809
+ 共 **13 个**适配器已完成批量查询优化。
810
+
811
+ 未修改的适配器(4 个):
812
+ - SQLite: 本地文件数据库,PRAGMA 查询已经很快
813
+ - ClickHouse: 使用 system 表查询,已经是批量方式
814
+ - Redis: 键值存储,无传统表结构
815
+ - MongoDB: 文档数据库,需要采样推断结构
816
+
778
817
  ### 何时需要刷新缓存
779
818
 
780
819
  以下情况建议强制刷新或清除缓存:
@@ -3,6 +3,8 @@
3
3
  * 达梦数据库高度兼容 Oracle,使用类似的 API 和系统视图
4
4
  *
5
5
  * dmdb 驱动会作为可选依赖自动安装
6
+ *
7
+ * 性能优化:使用批量查询获取 Schema 信息,避免 N+1 查询问题
6
8
  */
7
9
  import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
8
10
  export declare class DMAdapter implements DbAdapter {
@@ -28,13 +30,13 @@ export declare class DMAdapter implements DbAdapter {
28
30
  */
29
31
  executeQuery(query: string, params?: unknown[]): Promise<QueryResult>;
30
32
  /**
31
- * 获取数据库结构信息
33
+ * 获取数据库结构信息(批量查询优化版本)
32
34
  */
33
35
  getSchema(): Promise<SchemaInfo>;
34
36
  /**
35
- * 获取单个表的详细信息
37
+ * 组装 Schema 信息
36
38
  */
37
- private getTableInfo;
39
+ private assembleSchema;
38
40
  /**
39
41
  * 格式化达梦数据类型
40
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAyB7B,qBAAa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA4D3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAoDtC;;OAEG;YACW,YAAY;IA2I1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CA+BzC"}
1
+ {"version":3,"file":"dm.d.ts","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAyB7B,qBAAa,SAAU,YAAW,SAAS;IACzC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA4D3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAoFtC;;OAEG;IACH,OAAO,CAAC,cAAc;IA+ItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CA+BzC"}
@@ -3,6 +3,8 @@
3
3
  * 达梦数据库高度兼容 Oracle,使用类似的 API 和系统视图
4
4
  *
5
5
  * dmdb 驱动会作为可选依赖自动安装
6
+ *
7
+ * 性能优化:使用批量查询获取 Schema 信息,避免 N+1 查询问题
6
8
  */
7
9
  import { isWriteOperation as checkWriteOperation } from '../utils/safety.js';
8
10
  // 动态导入 dmdb,因为它是可选依赖
@@ -137,7 +139,7 @@ export class DMAdapter {
137
139
  }
138
140
  }
139
141
  /**
140
- * 获取数据库结构信息
142
+ * 获取数据库结构信息(批量查询优化版本)
141
143
  */
142
144
  async getSchema() {
143
145
  if (!this.connection) {
@@ -154,127 +156,145 @@ export class DMAdapter {
154
156
  const databaseName = userResult.rows?.[0]
155
157
  ? Object.values(userResult.rows[0])[0]
156
158
  : 'unknown';
157
- // 获取所有表
158
- const tablesResult = await this.connection.execute(`SELECT TABLE_NAME, NUM_ROWS
159
+ // 批量获取所有表的列信息
160
+ const allColumnsResult = await this.connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION,
161
+ DATA_SCALE, NULLABLE, DATA_DEFAULT, COLUMN_ID
162
+ FROM USER_TAB_COLUMNS
163
+ ORDER BY TABLE_NAME, COLUMN_ID`, []);
164
+ // 批量获取所有列注释
165
+ const allCommentsResult = await this.connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, COMMENTS
166
+ FROM USER_COL_COMMENTS
167
+ WHERE COMMENTS IS NOT NULL`, []);
168
+ // 批量获取所有主键信息
169
+ const allPrimaryKeysResult = await this.connection.execute(`SELECT cons.TABLE_NAME, cols.COLUMN_NAME, cols.POSITION
170
+ FROM USER_CONSTRAINTS cons
171
+ JOIN USER_CONS_COLUMNS cols
172
+ ON cons.CONSTRAINT_NAME = cols.CONSTRAINT_NAME
173
+ WHERE cons.CONSTRAINT_TYPE = 'P'
174
+ ORDER BY cons.TABLE_NAME, cols.POSITION`, []);
175
+ // 批量获取所有索引信息
176
+ const allIndexesResult = await this.connection.execute(`SELECT i.TABLE_NAME, i.INDEX_NAME, i.UNIQUENESS, ic.COLUMN_NAME, ic.COLUMN_POSITION
177
+ FROM USER_INDEXES i
178
+ JOIN USER_IND_COLUMNS ic
179
+ ON i.INDEX_NAME = ic.INDEX_NAME
180
+ WHERE i.INDEX_TYPE != 'LOB'
181
+ ORDER BY i.TABLE_NAME, i.INDEX_NAME, ic.COLUMN_POSITION`, []);
182
+ // 批量获取所有表的行数估算
183
+ const allStatsResult = await this.connection.execute(`SELECT TABLE_NAME, NUM_ROWS
159
184
  FROM USER_TABLES
160
- ORDER BY TABLE_NAME`, []);
161
- const tableInfos = [];
162
- if (tablesResult.rows) {
163
- for (const tableRow of tablesResult.rows) {
164
- const tableName = tableRow.TABLE_NAME;
165
- const tableInfo = await this.getTableInfo(tableName);
166
- tableInfos.push(tableInfo);
167
- }
168
- }
169
- return {
170
- databaseType: 'dm',
171
- databaseName,
172
- tables: tableInfos,
173
- version,
174
- };
185
+ WHERE TEMPORARY = 'N'`, []);
186
+ return this.assembleSchema(databaseName, version, allColumnsResult.rows || [], allCommentsResult.rows || [], allPrimaryKeysResult.rows || [], allIndexesResult.rows || [], allStatsResult.rows || []);
175
187
  }
176
188
  catch (error) {
177
189
  throw new Error(`获取数据库结构失败: ${error instanceof Error ? error.message : String(error)}`);
178
190
  }
179
191
  }
180
192
  /**
181
- * 获取单个表的详细信息
193
+ * 组装 Schema 信息
182
194
  */
183
- async getTableInfo(tableName) {
184
- if (!this.connection) {
185
- throw new Error('数据库未连接');
186
- }
187
- // 获取列信息
188
- const columnsResult = await this.connection.execute(`SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION,
189
- DATA_SCALE, NULLABLE, DATA_DEFAULT, COLUMN_ID
190
- FROM USER_TAB_COLUMNS
191
- WHERE TABLE_NAME = :1
192
- ORDER BY COLUMN_ID`, [tableName]);
193
- const columnInfos = [];
194
- if (columnsResult.rows) {
195
- for (const col of columnsResult.rows) {
196
- const colData = col;
197
- columnInfos.push({
198
- name: colData.COLUMN_NAME.toLowerCase(),
199
- type: this.formatDMType(colData.DATA_TYPE, colData.DATA_LENGTH, colData.DATA_PRECISION, colData.DATA_SCALE),
200
- nullable: colData.NULLABLE === 'Y',
201
- defaultValue: colData.DATA_DEFAULT?.trim() || undefined,
202
- });
195
+ assembleSchema(databaseName, version, allColumns, allComments, allPrimaryKeys, allIndexes, allStats) {
196
+ // 按表名分组列信息
197
+ const columnsByTable = new Map();
198
+ for (const col of allColumns) {
199
+ const tableName = col.TABLE_NAME;
200
+ if (!columnsByTable.has(tableName)) {
201
+ columnsByTable.set(tableName, []);
203
202
  }
203
+ columnsByTable.get(tableName).push({
204
+ name: col.COLUMN_NAME.toLowerCase(),
205
+ type: this.formatDMType(col.DATA_TYPE, col.DATA_LENGTH, col.DATA_PRECISION, col.DATA_SCALE),
206
+ nullable: col.NULLABLE === 'Y',
207
+ defaultValue: col.DATA_DEFAULT?.trim() || undefined,
208
+ });
204
209
  }
205
- // 获取列注释
206
- const commentsResult = await this.connection.execute(`SELECT COLUMN_NAME, COMMENTS
207
- FROM USER_COL_COMMENTS
208
- WHERE TABLE_NAME = :1
209
- AND COMMENTS IS NOT NULL`, [tableName]);
210
- const commentsMap = new Map();
211
- if (commentsResult.rows) {
212
- for (const row of commentsResult.rows) {
213
- const rowData = row;
214
- commentsMap.set(rowData.COLUMN_NAME.toLowerCase(), rowData.COMMENTS);
210
+ // 按表名分组列注释
211
+ const commentsByTable = new Map();
212
+ for (const comment of allComments) {
213
+ const tableName = comment.TABLE_NAME;
214
+ if (!commentsByTable.has(tableName)) {
215
+ commentsByTable.set(tableName, new Map());
215
216
  }
217
+ commentsByTable.get(tableName).set(comment.COLUMN_NAME.toLowerCase(), comment.COMMENTS);
216
218
  }
217
219
  // 将注释添加到列信息中
218
- for (const col of columnInfos) {
219
- if (commentsMap.has(col.name)) {
220
- col.comment = commentsMap.get(col.name);
220
+ for (const [tableName, columns] of columnsByTable.entries()) {
221
+ const tableComments = commentsByTable.get(tableName);
222
+ if (tableComments) {
223
+ for (const col of columns) {
224
+ if (tableComments.has(col.name)) {
225
+ col.comment = tableComments.get(col.name);
226
+ }
227
+ }
221
228
  }
222
229
  }
223
- // 获取主键
224
- const primaryKeysResult = await this.connection.execute(`SELECT cols.COLUMN_NAME, cols.POSITION
225
- FROM USER_CONSTRAINTS cons
226
- JOIN USER_CONS_COLUMNS cols
227
- ON cons.CONSTRAINT_NAME = cols.CONSTRAINT_NAME
228
- WHERE cons.CONSTRAINT_TYPE = 'P'
229
- AND cons.TABLE_NAME = :1
230
- ORDER BY cols.POSITION`, [tableName]);
231
- const primaryKeys = [];
232
- if (primaryKeysResult.rows) {
233
- for (const row of primaryKeysResult.rows) {
234
- primaryKeys.push(row.COLUMN_NAME.toLowerCase());
230
+ // 按表名分组主键信息
231
+ const primaryKeysByTable = new Map();
232
+ for (const pk of allPrimaryKeys) {
233
+ const tableName = pk.TABLE_NAME;
234
+ if (!primaryKeysByTable.has(tableName)) {
235
+ primaryKeysByTable.set(tableName, []);
235
236
  }
237
+ primaryKeysByTable.get(tableName).push(pk.COLUMN_NAME.toLowerCase());
236
238
  }
237
- // 获取索引信息
238
- const indexesResult = await this.connection.execute(`SELECT i.INDEX_NAME, i.UNIQUENESS, ic.COLUMN_NAME, ic.COLUMN_POSITION
239
- FROM USER_INDEXES i
240
- JOIN USER_IND_COLUMNS ic
241
- ON i.INDEX_NAME = ic.INDEX_NAME
242
- WHERE i.TABLE_NAME = :1
243
- ORDER BY i.INDEX_NAME, ic.COLUMN_POSITION`, [tableName]);
244
- const indexMap = new Map();
245
- if (indexesResult.rows) {
246
- for (const row of indexesResult.rows) {
247
- const rowData = row;
248
- const indexName = rowData.INDEX_NAME;
249
- // 跳过主键索引
250
- if (indexName.includes('PK_') || indexName.includes('SYS_')) {
251
- continue;
252
- }
253
- if (!indexMap.has(indexName)) {
254
- indexMap.set(indexName, {
255
- columns: [],
256
- unique: rowData.UNIQUENESS === 'UNIQUE',
239
+ // 按表名分组索引信息
240
+ const indexesByTable = new Map();
241
+ for (const idx of allIndexes) {
242
+ const tableName = idx.TABLE_NAME;
243
+ const indexName = idx.INDEX_NAME;
244
+ // 跳过主键索引
245
+ if (indexName.includes('PK_') || indexName.includes('SYS_')) {
246
+ continue;
247
+ }
248
+ if (!indexesByTable.has(tableName)) {
249
+ indexesByTable.set(tableName, new Map());
250
+ }
251
+ const tableIndexes = indexesByTable.get(tableName);
252
+ if (!tableIndexes.has(indexName)) {
253
+ tableIndexes.set(indexName, {
254
+ columns: [],
255
+ unique: idx.UNIQUENESS === 'UNIQUE',
256
+ });
257
+ }
258
+ tableIndexes.get(indexName).columns.push(idx.COLUMN_NAME.toLowerCase());
259
+ }
260
+ // 按表名分组行数统计
261
+ const rowsByTable = new Map();
262
+ for (const stat of allStats) {
263
+ rowsByTable.set(stat.TABLE_NAME, stat.NUM_ROWS || 0);
264
+ }
265
+ // 组装表信息
266
+ const tableInfos = [];
267
+ for (const [tableName, columns] of columnsByTable.entries()) {
268
+ // 只包含在 allStats 中的表(排除临时表等)
269
+ if (!rowsByTable.has(tableName)) {
270
+ continue;
271
+ }
272
+ const tableIndexes = indexesByTable.get(tableName);
273
+ const indexInfos = [];
274
+ if (tableIndexes) {
275
+ for (const [indexName, indexData] of tableIndexes.entries()) {
276
+ indexInfos.push({
277
+ name: indexName,
278
+ columns: indexData.columns,
279
+ unique: indexData.unique,
257
280
  });
258
281
  }
259
- indexMap.get(indexName).columns.push(rowData.COLUMN_NAME.toLowerCase());
260
282
  }
283
+ tableInfos.push({
284
+ name: tableName.toLowerCase(),
285
+ columns,
286
+ primaryKeys: primaryKeysByTable.get(tableName) || [],
287
+ indexes: indexInfos,
288
+ estimatedRows: rowsByTable.get(tableName) || 0,
289
+ });
261
290
  }
262
- const indexInfos = Array.from(indexMap.entries()).map(([name, info]) => ({
263
- name,
264
- columns: info.columns,
265
- unique: info.unique,
266
- }));
267
- // 获取表行数估算
268
- const rowCountResult = await this.connection.execute(`SELECT NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME = :1`, [tableName]);
269
- const estimatedRows = rowCountResult.rows?.[0]
270
- ? (rowCountResult.rows[0].NUM_ROWS || 0)
271
- : 0;
291
+ // 按表名排序
292
+ tableInfos.sort((a, b) => a.name.localeCompare(b.name));
272
293
  return {
273
- name: tableName.toLowerCase(),
274
- columns: columnInfos,
275
- primaryKeys,
276
- indexes: indexInfos,
277
- estimatedRows,
294
+ databaseType: 'dm',
295
+ databaseName,
296
+ tables: tableInfos,
297
+ version,
278
298
  };
279
299
  }
280
300
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dm.js","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dm.js","sourceRoot":"","sources":["../../src/adapters/dm.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  * GaussDB / OpenGauss 数据库适配器
3
3
  * 使用 pg 驱动实现 DbAdapter 接口
4
4
  * GaussDB 和 OpenGauss 基于 PostgreSQL 开发,兼容 PostgreSQL 协议
5
+ *
6
+ * 性能优化:使用批量查询获取 Schema 信息,避免 N+1 查询问题
5
7
  */
6
8
  import type { DbAdapter, QueryResult, SchemaInfo } from '../types/adapter.js';
7
9
  export declare class GaussDBAdapter implements DbAdapter {
@@ -27,13 +29,13 @@ export declare class GaussDBAdapter implements DbAdapter {
27
29
  */
28
30
  executeQuery(query: string, params?: unknown[]): Promise<QueryResult>;
29
31
  /**
30
- * 获取数据库结构信息
32
+ * 获取数据库结构信息(批量查询优化版本)
31
33
  */
32
34
  getSchema(): Promise<SchemaInfo>;
33
35
  /**
34
- * 获取单个表的详细信息
36
+ * 组装 Schema 信息
35
37
  */
36
- private getTableInfo;
38
+ private assembleSchema;
37
39
  /**
38
40
  * 检查是否为写操作
39
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gaussdb.d.ts","sourceRoot":"","sources":["../../src/adapters/gaussdb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IA4CtC;;OAEG;YACW,YAAY;IA2G1B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
1
+ {"version":3,"file":"gaussdb.d.ts","sourceRoot":"","sources":["../../src/adapters/gaussdb.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IA4FtC;;OAEG;IACH,OAAO,CAAC,cAAc;IAuGtB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}