@askdb/mysql 0.1.0-beta.17 → 0.1.0-beta.18

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.
package/NOTICE ADDED
@@ -0,0 +1,10 @@
1
+ AskDB
2
+ Copyright 2026 Yahya Gilany
3
+
4
+ This product includes software developed by Yahya Gilany and contributors.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
package/README.md CHANGED
@@ -58,6 +58,22 @@ const result = await introspect(
58
58
  );
59
59
  ```
60
60
 
61
+ By default the connector reads the connection URL's database and renders it under the `public` namespace. To introspect several databases, list them in `filters.schemas`. Each database then becomes its own namespace, and foreign keys that cross databases keep the referenced database:
62
+
63
+ ```ts
64
+ await introspect(
65
+ {
66
+ mode: "live",
67
+ runner: createMysqlCatalogQueryRunner(process.env.DATABASE_URL!),
68
+ filters: { schemas: ["app", "sales", "analytics"] },
69
+ },
70
+ { outDir: "./my-app.schema", schemaId: "my-app" },
71
+ { connector: createMysqlConnector() },
72
+ );
73
+ ```
74
+
75
+ With the `askdb` CLI, set `introspection.schemas` in `askdb.config.ts`, or pass `--schemas app,sales`.
76
+
61
77
  ## Captured metadata
62
78
 
63
79
  Tables, views, columns (MySQL-native type strings), primary keys, unique constraints, foreign keys (with referential actions), and indexes.
@@ -6,21 +6,94 @@ export type DescribeMysqlInput = {
6
6
  /** Optional `schemaId` for the resulting `SqlSchema`. Defaults to `"introspected"`. */
7
7
  schemaId?: string;
8
8
  };
9
- /** Internal: the catalog SQL strings, exposed for snapshot-based tests. */
9
+ /** Internal: the default (connection-database) catalog SQL strings, exposed for snapshot-based tests. */
10
10
  export declare const MYSQL_CATALOG_SQL: {
11
- readonly tables: "SELECT\n table_name AS table_name,\n table_type AS table_type,\n table_comment AS table_comment\nFROM information_schema.tables\nWHERE table_schema = DATABASE()\n AND table_type IN ('BASE TABLE', 'VIEW')\nORDER BY table_name";
12
- readonly columns: "SELECT\n table_name AS table_name,\n column_name AS column_name,\n ordinal_position AS ordinal_position,\n column_default AS column_default,\n is_nullable AS is_nullable,\n data_type AS data_type,\n column_type AS column_type,\n column_key AS column_key,\n extra AS extra,\n column_comment AS column_comment\nFROM information_schema.columns\nWHERE table_schema = DATABASE()\nORDER BY table_name, ordinal_position";
13
- readonly constraints: "SELECT\n tc.constraint_name AS constraint_name,\n tc.table_name AS table_name,\n kcu.column_name AS column_name,\n kcu.ordinal_position AS ordinal_position,\n tc.constraint_type AS constraint_type\nFROM information_schema.table_constraints tc\nJOIN information_schema.key_column_usage kcu\n ON kcu.constraint_schema = tc.constraint_schema\n AND kcu.constraint_name = tc.constraint_name\n AND kcu.table_name = tc.table_name\nWHERE tc.table_schema = DATABASE()\n AND tc.constraint_type IN ('PRIMARY KEY', 'UNIQUE')\nORDER BY tc.table_name, tc.constraint_name, kcu.ordinal_position";
14
- readonly foreign_keys: "SELECT\n kcu.constraint_name AS constraint_name,\n kcu.table_name AS table_name,\n kcu.column_name AS column_name,\n kcu.referenced_table_name AS referenced_table_name,\n kcu.referenced_column_name AS referenced_column_name,\n kcu.ordinal_position AS ordinal_position,\n rc.update_rule AS update_rule,\n rc.delete_rule AS delete_rule\nFROM information_schema.key_column_usage kcu\nJOIN information_schema.referential_constraints rc\n ON rc.constraint_schema = kcu.constraint_schema\n AND rc.constraint_name = kcu.constraint_name\nWHERE kcu.table_schema = DATABASE()\n AND kcu.referenced_table_name IS NOT NULL\nORDER BY kcu.table_name, kcu.constraint_name, kcu.ordinal_position";
15
- readonly indexes: "SELECT\n table_name AS table_name,\n index_name AS index_name,\n column_name AS column_name,\n seq_in_index AS seq_in_index,\n non_unique AS non_unique,\n index_type AS index_type\nFROM information_schema.statistics\nWHERE table_schema = DATABASE()\n AND index_name <> 'PRIMARY'\nORDER BY table_name, index_name, seq_in_index";
16
- readonly views: "SELECT\n table_name AS table_name,\n view_definition AS view_definition\nFROM information_schema.views\nWHERE table_schema = DATABASE()\nORDER BY table_name";
11
+ readonly tables: `SELECT
12
+ table_schema AS table_schema,
13
+ table_name AS table_name,
14
+ table_type AS table_type,
15
+ table_comment AS table_comment
16
+ FROM information_schema.tables
17
+ WHERE ${string}
18
+ AND table_type IN ('BASE TABLE', 'VIEW')
19
+ ORDER BY table_schema, table_name`;
20
+ readonly columns: `SELECT
21
+ table_schema AS table_schema,
22
+ table_name AS table_name,
23
+ column_name AS column_name,
24
+ ordinal_position AS ordinal_position,
25
+ column_default AS column_default,
26
+ is_nullable AS is_nullable,
27
+ data_type AS data_type,
28
+ column_type AS column_type,
29
+ column_key AS column_key,
30
+ extra AS extra,
31
+ column_comment AS column_comment
32
+ FROM information_schema.columns
33
+ WHERE ${string}
34
+ ORDER BY table_schema, table_name, ordinal_position`;
35
+ readonly constraints: `SELECT
36
+ tc.table_schema AS table_schema,
37
+ tc.constraint_name AS constraint_name,
38
+ tc.table_name AS table_name,
39
+ kcu.column_name AS column_name,
40
+ kcu.ordinal_position AS ordinal_position,
41
+ tc.constraint_type AS constraint_type
42
+ FROM information_schema.table_constraints tc
43
+ JOIN information_schema.key_column_usage kcu
44
+ ON kcu.constraint_schema = tc.constraint_schema
45
+ AND kcu.constraint_name = tc.constraint_name
46
+ AND kcu.table_schema = tc.table_schema
47
+ AND kcu.table_name = tc.table_name
48
+ WHERE ${string}
49
+ AND tc.constraint_type IN ('PRIMARY KEY', 'UNIQUE')
50
+ ORDER BY tc.table_schema, tc.table_name, tc.constraint_name, kcu.ordinal_position`;
51
+ readonly foreign_keys: `SELECT
52
+ kcu.table_schema AS table_schema,
53
+ kcu.constraint_name AS constraint_name,
54
+ kcu.table_name AS table_name,
55
+ kcu.column_name AS column_name,
56
+ kcu.referenced_table_schema AS referenced_table_schema,
57
+ kcu.referenced_table_name AS referenced_table_name,
58
+ kcu.referenced_column_name AS referenced_column_name,
59
+ kcu.ordinal_position AS ordinal_position,
60
+ rc.update_rule AS update_rule,
61
+ rc.delete_rule AS delete_rule
62
+ FROM information_schema.key_column_usage kcu
63
+ JOIN information_schema.referential_constraints rc
64
+ ON rc.constraint_schema = kcu.constraint_schema
65
+ AND rc.constraint_name = kcu.constraint_name
66
+ WHERE ${string}
67
+ AND kcu.referenced_table_name IS NOT NULL
68
+ ORDER BY kcu.table_schema, kcu.table_name, kcu.constraint_name, kcu.ordinal_position`;
69
+ readonly indexes: `SELECT
70
+ table_schema AS table_schema,
71
+ table_name AS table_name,
72
+ index_name AS index_name,
73
+ column_name AS column_name,
74
+ seq_in_index AS seq_in_index,
75
+ non_unique AS non_unique,
76
+ index_type AS index_type
77
+ FROM information_schema.statistics
78
+ WHERE ${string}
79
+ AND index_name <> 'PRIMARY'
80
+ ORDER BY table_schema, table_name, index_name, seq_in_index`;
81
+ readonly views: `SELECT
82
+ table_schema AS table_schema,
83
+ table_name AS table_name,
84
+ view_definition AS view_definition
85
+ FROM information_schema.views
86
+ WHERE ${string}
87
+ ORDER BY table_schema, table_name`;
17
88
  };
18
89
  type TableRow = {
90
+ table_schema: string;
19
91
  table_name: string;
20
92
  table_type: "BASE TABLE" | "VIEW" | string;
21
93
  table_comment: string | null;
22
94
  };
23
95
  type ColumnRow = {
96
+ table_schema: string;
24
97
  table_name: string;
25
98
  column_name: string;
26
99
  ordinal_position: number;
@@ -33,6 +106,7 @@ type ColumnRow = {
33
106
  column_comment: string | null;
34
107
  };
35
108
  type ConstraintRow = {
109
+ table_schema: string;
36
110
  constraint_name: string;
37
111
  table_name: string;
38
112
  column_name: string;
@@ -40,9 +114,11 @@ type ConstraintRow = {
40
114
  constraint_type: "PRIMARY KEY" | "UNIQUE" | string;
41
115
  };
42
116
  type ForeignKeyRow = {
117
+ table_schema: string;
43
118
  constraint_name: string;
44
119
  table_name: string;
45
120
  column_name: string;
121
+ referenced_table_schema: string | null;
46
122
  referenced_table_name: string;
47
123
  referenced_column_name: string;
48
124
  ordinal_position: number;
@@ -50,6 +126,7 @@ type ForeignKeyRow = {
50
126
  delete_rule: string | null;
51
127
  };
52
128
  type IndexRow = {
129
+ table_schema: string;
53
130
  table_name: string;
54
131
  index_name: string;
55
132
  column_name: string | null;
@@ -58,12 +135,18 @@ type IndexRow = {
58
135
  index_type: string;
59
136
  };
60
137
  type ViewRow = {
138
+ table_schema: string;
61
139
  table_name: string;
62
140
  view_definition: string | null;
63
141
  };
64
142
  export declare function describeMysql(input: DescribeMysqlInput): Promise<IntrospectionResult>;
65
143
  type FoldInput = {
66
144
  schemaId: string;
145
+ /**
146
+ * Maps a row's database to the namespace it renders under: the database name
147
+ * itself for a database list, `"public"` for the connection's database.
148
+ */
149
+ namespaceOf: (database: string) => string;
67
150
  tableFilter: ReturnType<typeof compileTableFilters>;
68
151
  tableRows: TableRow[];
69
152
  columnRows: ColumnRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EAWpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAWhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAgFF,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAC;AAEX,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AACF,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AACF,KAAK,aAAa,GAAG;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpD,CAAC;AACF,KAAK,aAAa,GAAG;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AACF,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoC3F;AAED,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACpD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB,CAqFrE"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,37 @@ import { compileTableFilters } from "./glob.js";
2
2
  import { makeColumnId, makeTableId } from "./ids.js";
3
3
  /**
4
4
  * MySQL doesn't have Postgres-style schemas (each "schema" is a database).
5
- * Hosts pick a database via the connection string; the connector emits its
6
- * contents under a single namespace named `"public"` to match `@askdb/prisma`'s
7
- * convention and keep table ids cross-engine stable.
5
+ *
6
+ * - **Default (no `filters.schemas`)**: the connector reads the connection's
7
+ * database (`DATABASE()`) and emits it under a single namespace named
8
+ * `"public"`, matching `@askdb/prisma`'s convention so table ids stay stable
9
+ * across engines.
10
+ * - **Database list (`filters.schemas`)**: the connector reads every listed
11
+ * database (`table_schema IN (…)`) and each becomes its own namespace, named
12
+ * after the database. Foreign keys that cross databases keep the referenced
13
+ * database. `filters.excludeSchemas` removes entries from the list.
14
+ * `introspection.schemas` (askdb.config.ts) and
15
+ * `askdb introspect --schemas` both feed this list.
8
16
  */
9
- const NAMESPACE = "public";
10
- // information_schema is well-documented; pinning the SQL inside the package
11
- // keeps the surface stable. Each query restricts to `DATABASE()` so the runner's
12
- // connection-bound database is the implicit filter.
13
- const SQL_TABLES = `SELECT
17
+ const DEFAULT_NAMESPACE = "public";
18
+ const connectionDatabase = (column) => `${column} = DATABASE()`;
19
+ function listedDatabases(count) {
20
+ const markers = Array.from({ length: count }, () => "?").join(", ");
21
+ return (column) => `${column} IN (${markers})`;
22
+ }
23
+ function catalogSql(scope) {
24
+ return {
25
+ tables: `SELECT
26
+ table_schema AS table_schema,
14
27
  table_name AS table_name,
15
28
  table_type AS table_type,
16
29
  table_comment AS table_comment
17
30
  FROM information_schema.tables
18
- WHERE table_schema = DATABASE()
31
+ WHERE ${scope("table_schema")}
19
32
  AND table_type IN ('BASE TABLE', 'VIEW')
20
- ORDER BY table_name`;
21
- const SQL_COLUMNS = `SELECT
33
+ ORDER BY table_schema, table_name`,
34
+ columns: `SELECT
35
+ table_schema AS table_schema,
22
36
  table_name AS table_name,
23
37
  column_name AS column_name,
24
38
  ordinal_position AS ordinal_position,
@@ -30,9 +44,10 @@ const SQL_COLUMNS = `SELECT
30
44
  extra AS extra,
31
45
  column_comment AS column_comment
32
46
  FROM information_schema.columns
33
- WHERE table_schema = DATABASE()
34
- ORDER BY table_name, ordinal_position`;
35
- const SQL_CONSTRAINTS = `SELECT
47
+ WHERE ${scope("table_schema")}
48
+ ORDER BY table_schema, table_name, ordinal_position`,
49
+ constraints: `SELECT
50
+ tc.table_schema AS table_schema,
36
51
  tc.constraint_name AS constraint_name,
37
52
  tc.table_name AS table_name,
38
53
  kcu.column_name AS column_name,
@@ -42,14 +57,17 @@ FROM information_schema.table_constraints tc
42
57
  JOIN information_schema.key_column_usage kcu
43
58
  ON kcu.constraint_schema = tc.constraint_schema
44
59
  AND kcu.constraint_name = tc.constraint_name
60
+ AND kcu.table_schema = tc.table_schema
45
61
  AND kcu.table_name = tc.table_name
46
- WHERE tc.table_schema = DATABASE()
62
+ WHERE ${scope("tc.table_schema")}
47
63
  AND tc.constraint_type IN ('PRIMARY KEY', 'UNIQUE')
48
- ORDER BY tc.table_name, tc.constraint_name, kcu.ordinal_position`;
49
- const SQL_FOREIGN_KEYS = `SELECT
64
+ ORDER BY tc.table_schema, tc.table_name, tc.constraint_name, kcu.ordinal_position`,
65
+ foreign_keys: `SELECT
66
+ kcu.table_schema AS table_schema,
50
67
  kcu.constraint_name AS constraint_name,
51
68
  kcu.table_name AS table_name,
52
69
  kcu.column_name AS column_name,
70
+ kcu.referenced_table_schema AS referenced_table_schema,
53
71
  kcu.referenced_table_name AS referenced_table_name,
54
72
  kcu.referenced_column_name AS referenced_column_name,
55
73
  kcu.ordinal_position AS ordinal_position,
@@ -59,10 +77,11 @@ FROM information_schema.key_column_usage kcu
59
77
  JOIN information_schema.referential_constraints rc
60
78
  ON rc.constraint_schema = kcu.constraint_schema
61
79
  AND rc.constraint_name = kcu.constraint_name
62
- WHERE kcu.table_schema = DATABASE()
80
+ WHERE ${scope("kcu.table_schema")}
63
81
  AND kcu.referenced_table_name IS NOT NULL
64
- ORDER BY kcu.table_name, kcu.constraint_name, kcu.ordinal_position`;
65
- const SQL_INDEXES = `SELECT
82
+ ORDER BY kcu.table_schema, kcu.table_name, kcu.constraint_name, kcu.ordinal_position`,
83
+ indexes: `SELECT
84
+ table_schema AS table_schema,
66
85
  table_name AS table_name,
67
86
  index_name AS index_name,
68
87
  column_name AS column_name,
@@ -70,29 +89,33 @@ const SQL_INDEXES = `SELECT
70
89
  non_unique AS non_unique,
71
90
  index_type AS index_type
72
91
  FROM information_schema.statistics
73
- WHERE table_schema = DATABASE()
92
+ WHERE ${scope("table_schema")}
74
93
  AND index_name <> 'PRIMARY'
75
- ORDER BY table_name, index_name, seq_in_index`;
76
- const SQL_VIEWS = `SELECT
94
+ ORDER BY table_schema, table_name, index_name, seq_in_index`,
95
+ views: `SELECT
96
+ table_schema AS table_schema,
77
97
  table_name AS table_name,
78
98
  view_definition AS view_definition
79
99
  FROM information_schema.views
80
- WHERE table_schema = DATABASE()
81
- ORDER BY table_name`;
82
- /** Internal: the catalog SQL strings, exposed for snapshot-based tests. */
83
- export const MYSQL_CATALOG_SQL = {
84
- tables: SQL_TABLES,
85
- columns: SQL_COLUMNS,
86
- constraints: SQL_CONSTRAINTS,
87
- foreign_keys: SQL_FOREIGN_KEYS,
88
- indexes: SQL_INDEXES,
89
- views: SQL_VIEWS,
90
- };
100
+ WHERE ${scope("table_schema")}
101
+ ORDER BY table_schema, table_name`,
102
+ };
103
+ }
104
+ /** Internal: the default (connection-database) catalog SQL strings, exposed for snapshot-based tests. */
105
+ export const MYSQL_CATALOG_SQL = catalogSql(connectionDatabase);
91
106
  export async function describeMysql(input) {
92
107
  const runner = input.runner;
93
108
  const tableFilter = compileTableFilters(input.filters?.tables);
94
- const run = async (sql) => {
95
- const result = await runner(sql);
109
+ const excluded = new Set(input.filters?.excludeSchemas ?? []);
110
+ const databases = [...new Set(input.filters?.schemas ?? [])].filter((d) => d && !excluded.has(d));
111
+ const listed = (input.filters?.schemas?.length ?? 0) > 0;
112
+ const sql = listed ? catalogSql(listedDatabases(databases.length)) : MYSQL_CATALOG_SQL;
113
+ const params = listed ? databases : undefined;
114
+ const run = async (query) => {
115
+ // Every listed database was excluded: nothing to read.
116
+ if (listed && databases.length === 0)
117
+ return [];
118
+ const result = await runner(query, params);
96
119
  if (result.rows.length === 0)
97
120
  return [];
98
121
  const idx = new Map();
@@ -106,15 +129,16 @@ export async function describeMysql(input) {
106
129
  });
107
130
  };
108
131
  const [tableRows, columnRows, constraintRows, fkRows, indexRows, viewRows] = await Promise.all([
109
- run(SQL_TABLES),
110
- run(SQL_COLUMNS),
111
- run(SQL_CONSTRAINTS),
112
- run(SQL_FOREIGN_KEYS),
113
- run(SQL_INDEXES),
114
- run(SQL_VIEWS),
132
+ run(sql.tables),
133
+ run(sql.columns),
134
+ run(sql.constraints),
135
+ run(sql.foreign_keys),
136
+ run(sql.indexes),
137
+ run(sql.views),
115
138
  ]);
116
139
  return foldMysqlResult({
117
140
  schemaId: input.schemaId ?? "introspected",
141
+ namespaceOf: listed ? (database) => database : () => DEFAULT_NAMESPACE,
118
142
  tableFilter,
119
143
  tableRows,
120
144
  columnRows,
@@ -125,89 +149,93 @@ export async function describeMysql(input) {
125
149
  declaredFilters: input.filters?.tables ?? [],
126
150
  });
127
151
  }
152
+ /** Grouping key for a table: database + name, so equal table names in two databases stay apart. */
153
+ function tableKey(row) {
154
+ return `${row.table_schema}\u0000${row.table_name}`;
155
+ }
128
156
  export function foldMysqlResult(input) {
129
157
  const warnings = [];
130
- const columnsByTable = groupBy(input.columnRows, (r) => r.table_name);
131
- const constraintsByTable = groupBy(input.constraintRows, (r) => r.table_name);
132
- const fksByTable = groupBy(input.fkRows, (r) => r.table_name);
133
- const indexesByTable = groupBy(input.indexRows, (r) => r.table_name);
134
- const viewDefByName = new Map();
158
+ const columnsByTable = groupBy(input.columnRows, tableKey);
159
+ const constraintsByTable = groupBy(input.constraintRows, tableKey);
160
+ const fksByTable = groupBy(input.fkRows, tableKey);
161
+ const indexesByTable = groupBy(input.indexRows, tableKey);
162
+ const viewDefByTable = new Map();
135
163
  for (const v of input.viewRows) {
136
164
  if (v.view_definition)
137
- viewDefByName.set(v.table_name, v.view_definition);
165
+ viewDefByTable.set(tableKey(v), v.view_definition);
138
166
  }
139
- const tables = [];
140
- const views = [];
167
+ const namespaces = new Map();
168
+ const namespaceFor = (name) => {
169
+ let ns = namespaces.get(name);
170
+ if (!ns) {
171
+ ns = { name, tables: [], views: [], enums: [], sequences: [] };
172
+ namespaces.set(name, ns);
173
+ }
174
+ return ns;
175
+ };
141
176
  const viewDefinitions = {};
142
177
  for (const t of input.tableRows) {
143
- const qualified = `${NAMESPACE}.${t.table_name}`;
144
- if (!input.tableFilter(qualified))
178
+ const namespace = input.namespaceOf(t.table_schema);
179
+ if (!input.tableFilter(`${namespace}.${t.table_name}`))
145
180
  continue;
146
- const cols = (columnsByTable.get(t.table_name) ?? [])
181
+ const key = tableKey(t);
182
+ const cols = (columnsByTable.get(key) ?? [])
147
183
  .slice()
148
184
  .sort((a, b) => a.ordinal_position - b.ordinal_position);
149
- const constraints = constraintsByTable.get(t.table_name) ?? [];
185
+ const constraints = constraintsByTable.get(key) ?? [];
150
186
  const pkRows = constraints
151
187
  .filter((c) => c.constraint_type === "PRIMARY KEY")
152
188
  .sort((a, b) => a.ordinal_position - b.ordinal_position);
153
189
  const pkColumns = pkRows.map((r) => r.column_name);
154
190
  const pkSet = new Set(pkColumns);
155
- const columns = cols.map((c) => buildColumn(t.table_name, c, pkSet));
191
+ const columns = cols.map((c) => buildColumn(namespace, t.table_name, c, pkSet));
156
192
  if (t.table_type === "VIEW") {
157
- const def = viewDefByName.get(t.table_name) ?? "";
158
- const view = {
159
- schema: NAMESPACE,
160
- name: t.table_name,
161
- definition: def,
162
- columns,
163
- };
164
- views.push(view);
165
- viewDefinitions[makeTableId(NAMESPACE, t.table_name)] = def;
193
+ const def = viewDefByTable.get(key) ?? "";
194
+ namespaceFor(namespace).views.push({ schema: namespace, name: t.table_name, definition: def, columns });
195
+ viewDefinitions[makeTableId(namespace, t.table_name)] = def;
166
196
  continue;
167
197
  }
168
- tables.push({
169
- id: makeTableId(NAMESPACE, t.table_name),
170
- schema: NAMESPACE,
198
+ namespaceFor(namespace).tables.push({
199
+ id: makeTableId(namespace, t.table_name),
200
+ schema: namespace,
171
201
  name: t.table_name,
172
202
  comment: t.table_comment ?? undefined,
173
203
  columns,
174
204
  primaryKey: pkColumns.length > 0 ? { columns: pkColumns } : undefined,
175
- foreignKeys: buildForeignKeys(fksByTable.get(t.table_name) ?? []),
205
+ foreignKeys: buildForeignKeys(fksByTable.get(key) ?? [], input.namespaceOf),
176
206
  uniqueConstraints: buildUniques(constraints),
177
- indexes: buildIndexes(indexesByTable.get(t.table_name) ?? []),
207
+ indexes: buildIndexes(indexesByTable.get(key) ?? []),
178
208
  checkConstraints: [],
179
209
  });
180
210
  }
181
211
  // Sort for deterministic output.
182
- tables.sort(byName);
183
- views.sort(byName);
184
- const namespace = {
185
- name: NAMESPACE,
186
- tables,
187
- views,
188
- enums: [],
189
- sequences: [],
190
- };
191
- const isEmpty = tables.length === 0 && views.length === 0;
212
+ const sortedNamespaces = [...namespaces.values()].sort(byName);
213
+ for (const ns of sortedNamespaces) {
214
+ ns.tables.sort(byName);
215
+ ns.views.sort(byName);
216
+ }
217
+ const allTables = sortedNamespaces.flatMap((ns) => ns.tables);
218
+ const allViews = sortedNamespaces.flatMap((ns) => ns.views);
219
+ const isEmpty = allTables.length === 0 && allViews.length === 0;
192
220
  for (const pattern of input.declaredFilters) {
193
- const matched = tables.some((t) => compileTableFilters([pattern])(`${NAMESPACE}.${t.name}`)) ||
194
- views.some((v) => compileTableFilters([pattern])(`${NAMESPACE}.${v.name}`));
221
+ const matches = compileTableFilters([pattern]);
222
+ const matched = allTables.some((t) => matches(`${t.schema}.${t.name}`)) || allViews.some((v) => matches(`${v.schema}.${v.name}`));
195
223
  if (!matched)
196
224
  warnings.push({ code: "ambiguous_filter", filter: pattern });
197
225
  }
198
226
  const schema = {
199
227
  schemaId: input.schemaId,
200
- schemas: isEmpty ? [] : [namespace],
228
+ schemas: isEmpty ? [] : sortedNamespaces,
201
229
  };
202
230
  return { schema, warnings, isEmpty, viewDefinitions, provider: "mysql" };
203
231
  }
204
- function buildColumn(table, c, pkSet) {
232
+ function buildColumn(namespace, table, c, pkSet) {
205
233
  // `column_type` carries width/unsigned/enum-values info (e.g. `enum('a','b')`,
206
234
  // `int(10) unsigned`); `data_type` is the bare type. Prefer `column_type` for
207
235
  // accuracy in the NL→SQL prompt, fall back to `data_type`.
208
236
  const dataType = c.column_type ?? c.data_type;
209
237
  return {
210
- id: makeColumnId(NAMESPACE, table, c.column_name),
238
+ id: makeColumnId(namespace, table, c.column_name),
211
239
  name: c.column_name,
212
240
  ordinalPosition: c.ordinal_position,
213
241
  dataType,
@@ -235,7 +263,7 @@ function buildUniques(constraints) {
235
263
  .map((r) => r.column_name),
236
264
  })).sort((a, b) => a.name.localeCompare(b.name));
237
265
  }
238
- function buildForeignKeys(rows) {
266
+ function buildForeignKeys(rows, namespaceOf) {
239
267
  const byName = new Map();
240
268
  for (const r of rows) {
241
269
  const list = byName.get(r.constraint_name) ?? [];
@@ -250,7 +278,8 @@ function buildForeignKeys(rows) {
250
278
  name,
251
279
  columns: ordered.map((r) => r.column_name),
252
280
  references: {
253
- schema: NAMESPACE,
281
+ // A cross-database FK keeps its referenced database; the default mode maps it to `public`.
282
+ schema: namespaceOf(sample.referenced_table_schema ?? sample.table_schema),
254
283
  table: sample.referenced_table_name,
255
284
  columns: ordered.map((r) => r.referenced_column_name),
256
285
  },
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/connector/describe.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAcnC,MAAM,kBAAkB,GAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,eAAe,CAAC;AAEvE,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,QAAQ,OAAO,GAAG,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,KAAY;IAC9B,OAAO;QACL,MAAM,EAAE;;;;;;QAMJ,KAAK,CAAC,cAAc,CAAC;;kCAEK;QAE9B,OAAO,EAAE;;;;;;;;;;;;;QAaL,KAAK,CAAC,cAAc,CAAC;oDACuB;QAEhD,WAAW,EAAE;;;;;;;;;;;;;QAaT,KAAK,CAAC,iBAAiB,CAAC;;kFAEkD;QAE9E,YAAY,EAAE;;;;;;;;;;;;;;;QAeV,KAAK,CAAC,kBAAkB,CAAC;;qFAEoD;QAEjF,OAAO,EAAE;;;;;;;;;QASL,KAAK,CAAC,cAAc,CAAC;;4DAE+B;QAExD,KAAK,EAAE;;;;;QAKH,KAAK,CAAC,cAAc,CAAC;kCACK;KACtB,CAAC;AACb,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAwDhE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAyB;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,MAAM,GAAG,GAAG,KAAK,EAAK,KAAa,EAAgB,EAAE;QACnD,uDAAuD;QACvD,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,MAAW,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7F,GAAG,CAAW,GAAG,CAAC,MAAM,CAAC;QACzB,GAAG,CAAY,GAAG,CAAC,OAAO,CAAC;QAC3B,GAAG,CAAgB,GAAG,CAAC,WAAW,CAAC;QACnC,GAAG,CAAgB,GAAG,CAAC,YAAY,CAAC;QACpC,GAAG,CAAW,GAAG,CAAC,OAAO,CAAC;QAC1B,GAAG,CAAU,GAAG,CAAC,KAAK,CAAC;KACxB,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;QACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc;QAC1C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB;QACtE,WAAW;QACX,SAAS;QACT,UAAU;QACV,cAAc;QACd,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE;KAC7C,CAAC,CAAC;AACL,CAAC;AAmBD,mGAAmG;AACnG,SAAS,QAAQ,CAAC,GAAiD;IACjE,OAAO,GAAG,GAAG,CAAC,YAAY,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,eAAe;YAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAgB,EAAE;QAClD,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC/D,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAAE,SAAS;QACjE,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,MAAM,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACzC,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,WAAW;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,aAAa,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1C,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACxG,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC;YACxC,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS;YACrC,OAAO;YACP,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;YACrE,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC;YAC3E,iBAAiB,EAAE,YAAY,CAAC,WAAW,CAAC;YAC5C,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpD,gBAAgB,EAAE,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAClC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAChE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GACX,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAc;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;KACzC,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB,EAAE,KAAa,EAAE,CAAY,EAAE,KAAkB;IACrF,+EAA+E;IAC/E,8EAA8E;IAC9E,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC;IAC9C,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;QACjD,IAAI,EAAE,CAAC,CAAC,WAAW;QACnB,eAAe,EAAE,CAAC,CAAC,gBAAgB;QACnC,QAAQ;QACR,OAAO,EAAE,CAAC,CAAC,SAAS;QACpB,QAAQ,EAAE,CAAC,CAAC,WAAW,KAAK,KAAK;QACjC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK;QAC9D,iBAAiB,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS;QAChD,OAAO,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,WAA4B;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,eAAe,KAAK,QAAQ;YAAE,SAAS;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI;QACJ,OAAO,EAAE,IAAI;aACV,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;KAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAqB,EAAE,WAAyC;IACxF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAC1C,UAAU,EAAE;gBACV,2FAA2F;gBAC3F,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,YAAY,CAAC;gBAC1E,KAAK,EAAE,MAAM,CAAC,qBAAqB;gBACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;aACtD;YACD,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,IAAmB;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IAC9C,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB;IACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,CAAC;YAC/B,MAAM,EAAE,MAAM,CAAC,UAAU;SACP,CAAC;IACvB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAO,IAAS,EAAE,GAAkB;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAA6B,CAAI,EAAE,CAAI;IACpD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/mysql",
3
- "version": "0.1.0-beta.17",
3
+ "version": "0.1.0-beta.18",
4
4
  "description": "AskDB MySQL integration: introspection connector via information_schema and a mysql2-backed catalog query runner. Pairs with @askdb/core's MYSQL_DIALECT.",
5
5
  "keywords": [
6
6
  "askdb",
@@ -12,7 +12,7 @@
12
12
  "introspection",
13
13
  "information-schema"
14
14
  ],
15
- "homepage": "https://github.com/Ygilany/AskDB#readme",
15
+ "homepage": "https://askdb.tools/guides/switch-engines/",
16
16
  "bugs": {
17
17
  "url": "https://github.com/Ygilany/AskDB/issues"
18
18
  },
@@ -24,6 +24,7 @@
24
24
  "license": "Apache-2.0",
25
25
  "author": "Yahya Gilany",
26
26
  "type": "module",
27
+ "sideEffects": false,
27
28
  "main": "./dist/index.js",
28
29
  "types": "./dist/index.d.ts",
29
30
  "exports": {
@@ -43,9 +44,9 @@
43
44
  "node": ">=22.12"
44
45
  },
45
46
  "dependencies": {
46
- "@askdb/core": "1.0.0-beta.42",
47
- "@askdb/introspect": "0.3.0-beta.16",
48
- "@askdb/connectors": "0.1.0-beta.7"
47
+ "@askdb/connectors": "0.1.0-beta.8",
48
+ "@askdb/introspect": "0.3.0-beta.17",
49
+ "@askdb/core": "1.0.0-beta.43"
49
50
  },
50
51
  "peerDependencies": {
51
52
  "mysql2": ">=3"
@@ -56,9 +57,9 @@
56
57
  }
57
58
  },
58
59
  "devDependencies": {
59
- "mysql2": "^3.22.5",
60
+ "mysql2": "^3.24.4",
60
61
  "typescript": "^6.0.3",
61
- "vitest": "^4.1.10"
62
+ "vitest": "^5.0.1"
62
63
  },
63
64
  "scripts": {
64
65
  "build": "tsc -p tsconfig.build.json",