@deepagents/text2sql 7.0.2 → 7.1.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.
- package/README.md +3 -2
- package/dist/bin/sql.js +57 -32
- package/dist/index.js +793 -498
- package/dist/index.js.map +4 -4
- package/dist/lib/adapters/adapter.d.ts +23 -1
- package/dist/lib/adapters/adapter.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery-fk.d.ts +0 -11
- package/dist/lib/adapters/bigquery/bigquery-fk.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/bigquery-rows.d.ts +22 -0
- package/dist/lib/adapters/bigquery/bigquery-rows.d.ts.map +1 -0
- package/dist/lib/adapters/bigquery/bigquery.d.ts +1 -1
- package/dist/lib/adapters/bigquery/bigquery.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/constraint.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.d.ts +6 -13
- package/dist/lib/adapters/bigquery/index.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/index.js +244 -51
- package/dist/lib/adapters/bigquery/index.js.map +4 -4
- package/dist/lib/adapters/bigquery/indexes.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/row-count.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/table.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/bigquery/view.bigquery.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/clickhouse-rows.d.ts +7 -0
- package/dist/lib/adapters/clickhouse/clickhouse-rows.d.ts.map +1 -0
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts +1 -1
- package/dist/lib/adapters/clickhouse/clickhouse.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/constraint.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/index.js +133 -44
- package/dist/lib/adapters/clickhouse/index.js.map +4 -4
- package/dist/lib/adapters/clickhouse/indexes.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/info.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/row-count.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/table.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/clickhouse/view.clickhouse.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/duckdb.d.ts +1 -1
- package/dist/lib/adapters/duckdb/duckdb.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/duckdb.groundings.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/index.d.ts +8 -10
- package/dist/lib/adapters/duckdb/index.d.ts.map +1 -1
- package/dist/lib/adapters/duckdb/index.js +1549 -1412
- package/dist/lib/adapters/duckdb/index.js.map +4 -4
- package/dist/lib/adapters/groundings/index.js.map +1 -1
- package/dist/lib/adapters/groundings/rows.d.ts +32 -0
- package/dist/lib/adapters/groundings/rows.d.ts.map +1 -0
- package/dist/lib/adapters/mysql/column-stats.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/column-values.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/constraint.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.d.ts +2 -4
- package/dist/lib/adapters/mysql/index.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/index.js +230 -76
- package/dist/lib/adapters/mysql/index.js.map +4 -4
- package/dist/lib/adapters/mysql/indexes.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/info.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/mysql-rows.d.ts +11 -0
- package/dist/lib/adapters/mysql/mysql-rows.d.ts.map +1 -0
- package/dist/lib/adapters/mysql/mysql.d.ts +1 -1
- package/dist/lib/adapters/mysql/mysql.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/row-count.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/table.mysql.grounding.d.ts +3 -2
- package/dist/lib/adapters/mysql/table.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/mysql/view.mysql.grounding.d.ts +2 -2
- package/dist/lib/adapters/mysql/view.mysql.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-stats.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/column-values.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/constraint.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.d.ts +2 -4
- package/dist/lib/adapters/postgres/index.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/index.js +266 -487
- package/dist/lib/adapters/postgres/index.js.map +4 -4
- package/dist/lib/adapters/postgres/indexes.postgres.grounding.d.ts +1 -5
- package/dist/lib/adapters/postgres/indexes.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/info.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/postgres-rows.d.ts +7 -0
- package/dist/lib/adapters/postgres/postgres-rows.d.ts.map +1 -0
- package/dist/lib/adapters/postgres/postgres.d.ts +6 -1
- package/dist/lib/adapters/postgres/postgres.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/row-count.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/table.postgres.grounding.d.ts +5 -4
- package/dist/lib/adapters/postgres/table.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/postgres/view.postgres.grounding.d.ts +3 -3
- package/dist/lib/adapters/postgres/view.postgres.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/definitions.posthog.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/index.d.ts +4 -5
- package/dist/lib/adapters/posthog/index.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/index.js +349 -287
- package/dist/lib/adapters/posthog/index.js.map +4 -4
- package/dist/lib/adapters/posthog/posthog.d.ts +2 -2
- package/dist/lib/adapters/posthog/posthog.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/posthog.sql-policy.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/schema.posthog.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/transport.d.ts.map +1 -1
- package/dist/lib/adapters/posthog/types.d.ts +16 -6
- package/dist/lib/adapters/posthog/types.d.ts.map +1 -1
- package/dist/lib/adapters/spreadsheet/index.js +113 -34
- package/dist/lib/adapters/spreadsheet/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/column-stats.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/column-values.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/constraint.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/index.js +136 -49
- package/dist/lib/adapters/sqlite/index.js.map +4 -4
- package/dist/lib/adapters/sqlite/indexes.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/info.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/row-count.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/sqlite-rows.d.ts +41 -0
- package/dist/lib/adapters/sqlite/sqlite-rows.d.ts.map +1 -0
- package/dist/lib/adapters/sqlite/sqlite.d.ts +1 -1
- package/dist/lib/adapters/sqlite/sqlite.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/table.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlite/view.sqlite.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/column-stats.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/column-values.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/constraint.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.d.ts +2 -4
- package/dist/lib/adapters/sqlserver/index.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/index.js +223 -455
- package/dist/lib/adapters/sqlserver/index.js.map +4 -4
- package/dist/lib/adapters/sqlserver/indexes.sqlserver.grounding.d.ts +1 -5
- package/dist/lib/adapters/sqlserver/indexes.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/info.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/row-count.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/sqlserver-rows.d.ts +7 -0
- package/dist/lib/adapters/sqlserver/sqlserver-rows.d.ts.map +1 -0
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts +6 -1
- package/dist/lib/adapters/sqlserver/sqlserver.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/table.sqlserver.grounding.d.ts +4 -3
- package/dist/lib/adapters/sqlserver/table.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/adapters/sqlserver/view.sqlserver.grounding.d.ts +3 -3
- package/dist/lib/adapters/sqlserver/view.sqlserver.grounding.d.ts.map +1 -1
- package/dist/lib/agents/sql-transform-plugins.d.ts.map +1 -1
- package/dist/lib/checkpoint.d.ts +34 -21
- package/dist/lib/checkpoint.d.ts.map +1 -1
- package/dist/lib/file-cache.d.ts +6 -1
- package/dist/lib/file-cache.d.ts.map +1 -1
- package/dist/lib/fs/columns.d.ts +14 -0
- package/dist/lib/fs/columns.d.ts.map +1 -0
- package/dist/lib/fs/mssql/mssql-fs.d.ts +4 -4
- package/dist/lib/fs/mssql/mssql-fs.d.ts.map +1 -1
- package/dist/lib/fs/postgres/postgres-fs.d.ts +4 -4
- package/dist/lib/fs/postgres/postgres-fs.d.ts.map +1 -1
- package/dist/lib/fs/sqlite/sqlite-fs.d.ts +4 -4
- package/dist/lib/fs/sqlite/sqlite-fs.d.ts.map +1 -1
- package/dist/lib/index-cache.d.ts +4 -3
- package/dist/lib/index-cache.d.ts.map +1 -1
- package/dist/lib/sql.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts +1 -2
- package/dist/lib/synthesis/decorators/deduplicated-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts +0 -2
- package/dist/lib/synthesis/decorators/filtered-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/decorators/validated-producer.d.ts +1 -3
- package/dist/lib/synthesis/decorators/validated-producer.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/base-contextual-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/message-extractor.d.ts.map +1 -1
- package/dist/lib/synthesis/extractors/tool-input.d.ts +6 -0
- package/dist/lib/synthesis/extractors/tool-input.d.ts.map +1 -0
- package/dist/lib/synthesis/index.js +124 -114
- package/dist/lib/synthesis/index.js.map +4 -4
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts +0 -2
- package/dist/lib/synthesis/synthesizers/breadth-evolver.d.ts.map +1 -1
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts +0 -3
- package/dist/lib/synthesis/synthesizers/depth-evolver.d.ts.map +1 -1
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts +0 -2
- package/dist/lib/synthesis/synthesizers/schema-synthesizer.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-stats.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column-stats.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAYvD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,oBAAoB;;gBAGtD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,0BAA+B;cAK5C,YAAY,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAuEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-values.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-values.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"column-values.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/column-values.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,KAAK,MAAM,EACX,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,0CAA0C,CAAC;AAGlD;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;;gBAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,2BAAgC;cAK7C,qBAAqB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;CAmDjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/constraint.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.sqlite.grounding.d.ts","sourceRoot":"","sources":["../../../../src/lib/adapters/sqlite/constraint.sqlite.grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;AAO/C;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB;;gBAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,yBAA8B;cAK3C,cAAc,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC;CAwK9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// packages/text2sql/src/lib/adapters/adapter.ts
|
|
2
2
|
import { format as formatSql } from "sql-formatter";
|
|
3
|
+
import { z } from "zod";
|
|
3
4
|
|
|
4
5
|
// packages/text2sql/src/lib/agents/exceptions.ts
|
|
5
6
|
var sqlValidationMarker = /* @__PURE__ */ Symbol("SQLValidationError");
|
|
@@ -432,6 +433,40 @@ var Adapter = class {
|
|
|
432
433
|
}
|
|
433
434
|
return decoded;
|
|
434
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* Run an introspection query and check every row against `row`, the shape
|
|
438
|
+
* the driver returns for that query. A row of any other shape throws.
|
|
439
|
+
*/
|
|
440
|
+
async runQuery(sql, row) {
|
|
441
|
+
const rows = z.array(row).safeParse(await this.queryRows(sql));
|
|
442
|
+
if (!rows.success) {
|
|
443
|
+
throw new Error(
|
|
444
|
+
`${this.constructor.name} introspection query returned rows of an unexpected shape:
|
|
445
|
+
${z.prettifyError(rows.error)}
|
|
446
|
+
SQL: ${sql.trim()}`,
|
|
447
|
+
{ cause: rows.error }
|
|
448
|
+
);
|
|
449
|
+
}
|
|
450
|
+
return rows.data;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* The rows in a driver's execute() result: the result itself when it is an
|
|
454
|
+
* array, otherwise the first array found at one of `paths` (dot-separated,
|
|
455
|
+
* so `recordsets.0` reads `result.recordsets[0]`).
|
|
456
|
+
*/
|
|
457
|
+
rowsFrom(result, paths) {
|
|
458
|
+
if (Array.isArray(result)) return result;
|
|
459
|
+
for (const path of paths) {
|
|
460
|
+
const rows = path.split(".").reduce(
|
|
461
|
+
(value, key) => typeof value === "object" && value !== null ? Reflect.get(value, key) : void 0,
|
|
462
|
+
result
|
|
463
|
+
);
|
|
464
|
+
if (Array.isArray(rows)) return rows;
|
|
465
|
+
}
|
|
466
|
+
throw new Error(
|
|
467
|
+
`${this.constructor.name} execute() must return an array of rows or an object holding one at ${paths.map((path) => `result.${path}`).join(", ")}.`
|
|
468
|
+
);
|
|
469
|
+
}
|
|
435
470
|
/**
|
|
436
471
|
* Convert unknown database value to number.
|
|
437
472
|
* Handles number, bigint, and string types.
|
|
@@ -992,6 +1027,12 @@ var TableGrounding = class extends AbstractGrounding {
|
|
|
992
1027
|
};
|
|
993
1028
|
|
|
994
1029
|
// packages/text2sql/src/lib/adapters/sqlite/column-stats.sqlite.grounding.ts
|
|
1030
|
+
import { z as z2 } from "zod";
|
|
1031
|
+
var statsRow = z2.object({
|
|
1032
|
+
min_value: z2.unknown(),
|
|
1033
|
+
max_value: z2.unknown(),
|
|
1034
|
+
null_fraction: z2.number().nullable()
|
|
1035
|
+
});
|
|
995
1036
|
var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
996
1037
|
#adapter;
|
|
997
1038
|
constructor(adapter, config = {}) {
|
|
@@ -1011,7 +1052,7 @@ var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
|
1011
1052
|
AVG(CASE WHEN ${columnIdentifier} IS NULL THEN 1.0 ELSE 0.0 END) AS null_fraction
|
|
1012
1053
|
FROM ${tableIdentifier}
|
|
1013
1054
|
`;
|
|
1014
|
-
const rows = await this.#adapter.runQuery(sql);
|
|
1055
|
+
const rows = await this.#adapter.runQuery(sql, statsRow);
|
|
1015
1056
|
if (!rows.length) {
|
|
1016
1057
|
return void 0;
|
|
1017
1058
|
}
|
|
@@ -1059,6 +1100,18 @@ var SqliteColumnStatsGrounding = class extends ColumnStatsGrounding {
|
|
|
1059
1100
|
}
|
|
1060
1101
|
};
|
|
1061
1102
|
|
|
1103
|
+
// packages/text2sql/src/lib/adapters/groundings/rows.ts
|
|
1104
|
+
import { z as z3 } from "zod";
|
|
1105
|
+
var nameRow = z3.object({ name: z3.string() });
|
|
1106
|
+
var versionRow = z3.object({ version: z3.string() });
|
|
1107
|
+
var databaseRow = z3.object({ db: z3.string() });
|
|
1108
|
+
var viewDefinitionRow = z3.object({
|
|
1109
|
+
definition: z3.string().nullable()
|
|
1110
|
+
});
|
|
1111
|
+
var distinctValueRow = z3.object({ value: z3.unknown() });
|
|
1112
|
+
var textValueRow = z3.object({ value: z3.string() });
|
|
1113
|
+
var numericValue = z3.union([z3.number(), z3.bigint(), z3.string()]);
|
|
1114
|
+
|
|
1062
1115
|
// packages/text2sql/src/lib/adapters/sqlite/column-values.sqlite.grounding.ts
|
|
1063
1116
|
var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
1064
1117
|
#adapter;
|
|
@@ -1076,7 +1129,7 @@ var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
|
1076
1129
|
WHERE ${columnIdentifier} IS NOT NULL
|
|
1077
1130
|
LIMIT ${limit}
|
|
1078
1131
|
`;
|
|
1079
|
-
const rows = await this.#adapter.runQuery(sql);
|
|
1132
|
+
const rows = await this.#adapter.runQuery(sql, distinctValueRow);
|
|
1080
1133
|
if (!rows.length || rows.length > this.lowCardinalityLimit) {
|
|
1081
1134
|
return void 0;
|
|
1082
1135
|
}
|
|
@@ -1113,6 +1166,38 @@ var SqliteColumnValuesGrounding = class extends ColumnValuesGrounding {
|
|
|
1113
1166
|
}
|
|
1114
1167
|
};
|
|
1115
1168
|
|
|
1169
|
+
// packages/text2sql/src/lib/adapters/sqlite/sqlite-rows.ts
|
|
1170
|
+
import { z as z4 } from "zod";
|
|
1171
|
+
var sqliteInteger = z4.union([z4.number(), z4.bigint()]).transform(Number);
|
|
1172
|
+
var sqliteMasterSqlRow = z4.object({ sql: z4.string().nullable() });
|
|
1173
|
+
var tableInfoRow = z4.object({
|
|
1174
|
+
cid: sqliteInteger,
|
|
1175
|
+
name: z4.string(),
|
|
1176
|
+
type: z4.string(),
|
|
1177
|
+
notnull: sqliteInteger,
|
|
1178
|
+
dflt_value: z4.string().nullable(),
|
|
1179
|
+
pk: sqliteInteger
|
|
1180
|
+
});
|
|
1181
|
+
var foreignKeyListRow = z4.object({
|
|
1182
|
+
id: sqliteInteger,
|
|
1183
|
+
seq: sqliteInteger,
|
|
1184
|
+
table: z4.string(),
|
|
1185
|
+
from: z4.string(),
|
|
1186
|
+
to: z4.string().nullable()
|
|
1187
|
+
});
|
|
1188
|
+
var indexListRow = z4.object({
|
|
1189
|
+
seq: sqliteInteger,
|
|
1190
|
+
name: z4.string(),
|
|
1191
|
+
unique: sqliteInteger,
|
|
1192
|
+
origin: z4.string(),
|
|
1193
|
+
partial: sqliteInteger
|
|
1194
|
+
});
|
|
1195
|
+
var indexInfoRow = z4.object({
|
|
1196
|
+
seqno: sqliteInteger,
|
|
1197
|
+
cid: sqliteInteger,
|
|
1198
|
+
name: z4.string().nullable()
|
|
1199
|
+
});
|
|
1200
|
+
|
|
1116
1201
|
// packages/text2sql/src/lib/adapters/sqlite/constraint.sqlite.grounding.ts
|
|
1117
1202
|
var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
1118
1203
|
#adapter;
|
|
@@ -1123,7 +1208,8 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1123
1208
|
async getConstraints(tableName) {
|
|
1124
1209
|
const constraints2 = [];
|
|
1125
1210
|
const columns = await this.#adapter.runQuery(
|
|
1126
|
-
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})
|
|
1211
|
+
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})`,
|
|
1212
|
+
tableInfoRow
|
|
1127
1213
|
);
|
|
1128
1214
|
const pkColumns = columns.filter((col) => col.pk > 0).sort((a, b) => a.pk - b.pk).map((col) => col.name);
|
|
1129
1215
|
if (pkColumns.length > 0) {
|
|
@@ -1151,7 +1237,8 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1151
1237
|
}
|
|
1152
1238
|
}
|
|
1153
1239
|
const fkRows = await this.#adapter.runQuery(
|
|
1154
|
-
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})
|
|
1240
|
+
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})`,
|
|
1241
|
+
foreignKeyListRow
|
|
1155
1242
|
);
|
|
1156
1243
|
const fkGroups = /* @__PURE__ */ new Map();
|
|
1157
1244
|
for (const row of fkRows) {
|
|
@@ -1166,11 +1253,13 @@ var SqliteConstraintGrounding = class extends ConstraintGrounding {
|
|
|
1166
1253
|
type: "FOREIGN_KEY",
|
|
1167
1254
|
columns: rows.map((r) => r.from),
|
|
1168
1255
|
referencedTable: rows[0].table,
|
|
1169
|
-
|
|
1256
|
+
// A key that references the parent's primary key names no columns.
|
|
1257
|
+
referencedColumns: rows.flatMap((r) => r.to === null ? [] : [r.to])
|
|
1170
1258
|
});
|
|
1171
1259
|
}
|
|
1172
1260
|
const ddlRows = await this.#adapter.runQuery(
|
|
1173
|
-
`SELECT sql FROM sqlite_master WHERE type='table' AND name=${this.#quoteIdentifier(tableName)}
|
|
1261
|
+
`SELECT sql FROM sqlite_master WHERE type='table' AND name=${this.#quoteIdentifier(tableName)}`,
|
|
1262
|
+
sqliteMasterSqlRow
|
|
1174
1263
|
);
|
|
1175
1264
|
if (ddlRows[0]?.sql) {
|
|
1176
1265
|
const columnNames = columns.map((c) => c.name);
|
|
@@ -1247,15 +1336,17 @@ var SqliteIndexesGrounding = class extends IndexesGrounding {
|
|
|
1247
1336
|
}
|
|
1248
1337
|
async getIndexes(tableName) {
|
|
1249
1338
|
const indexListRows = await this.#adapter.runQuery(
|
|
1250
|
-
`PRAGMA index_list(${this.#quoteIdentifier(tableName)})
|
|
1339
|
+
`PRAGMA index_list(${this.#quoteIdentifier(tableName)})`,
|
|
1340
|
+
indexListRow
|
|
1251
1341
|
);
|
|
1252
1342
|
const indexes2 = [];
|
|
1253
1343
|
for (const indexRow of indexListRows) {
|
|
1254
1344
|
if (!indexRow.name) continue;
|
|
1255
1345
|
const indexInfoRows = await this.#adapter.runQuery(
|
|
1256
|
-
`PRAGMA index_info(${this.#quoteIdentifier(indexRow.name)})
|
|
1346
|
+
`PRAGMA index_info(${this.#quoteIdentifier(indexRow.name)})`,
|
|
1347
|
+
indexInfoRow
|
|
1257
1348
|
);
|
|
1258
|
-
const columns = indexInfoRows.
|
|
1349
|
+
const columns = indexInfoRows.toSorted((a, b) => a.seqno - b.seqno).flatMap((row) => row.name === null ? [] : [row.name]);
|
|
1259
1350
|
if (!columns.length) continue;
|
|
1260
1351
|
indexes2.push({
|
|
1261
1352
|
name: indexRow.name,
|
|
@@ -1280,7 +1371,8 @@ var SqliteInfoGrounding = class extends InfoGrounding {
|
|
|
1280
1371
|
}
|
|
1281
1372
|
async collectInfo() {
|
|
1282
1373
|
const rows = await this.#adapter.runQuery(
|
|
1283
|
-
"SELECT sqlite_version() AS version"
|
|
1374
|
+
"SELECT sqlite_version() AS version",
|
|
1375
|
+
versionRow
|
|
1284
1376
|
);
|
|
1285
1377
|
return {
|
|
1286
1378
|
dialect: "sqlite",
|
|
@@ -1293,6 +1385,8 @@ var SqliteInfoGrounding = class extends InfoGrounding {
|
|
|
1293
1385
|
};
|
|
1294
1386
|
|
|
1295
1387
|
// packages/text2sql/src/lib/adapters/sqlite/row-count.sqlite.grounding.ts
|
|
1388
|
+
import { z as z5 } from "zod";
|
|
1389
|
+
var countRow = z5.object({ count: sqliteInteger });
|
|
1296
1390
|
var SqliteRowCountGrounding = class extends RowCountGrounding {
|
|
1297
1391
|
#adapter;
|
|
1298
1392
|
constructor(adapter, config = {}) {
|
|
@@ -1301,9 +1395,10 @@ var SqliteRowCountGrounding = class extends RowCountGrounding {
|
|
|
1301
1395
|
}
|
|
1302
1396
|
async getRowCount(tableName) {
|
|
1303
1397
|
const rows = await this.#adapter.runQuery(
|
|
1304
|
-
`SELECT COUNT(*) as count FROM ${this.#adapter.quoteIdentifier(tableName)}
|
|
1398
|
+
`SELECT COUNT(*) as count FROM ${this.#adapter.quoteIdentifier(tableName)}`,
|
|
1399
|
+
countRow
|
|
1305
1400
|
);
|
|
1306
|
-
return
|
|
1401
|
+
return rows[0]?.count;
|
|
1307
1402
|
}
|
|
1308
1403
|
};
|
|
1309
1404
|
|
|
@@ -1726,17 +1821,8 @@ var Sqlite = class extends Adapter {
|
|
|
1726
1821
|
#quoteIdentifier(name) {
|
|
1727
1822
|
return `'${name.replace(/'/g, "''")}'`;
|
|
1728
1823
|
}
|
|
1729
|
-
async
|
|
1730
|
-
|
|
1731
|
-
if (Array.isArray(result)) {
|
|
1732
|
-
return result;
|
|
1733
|
-
}
|
|
1734
|
-
if (result && typeof result === "object" && "rows" in result && Array.isArray(result.rows)) {
|
|
1735
|
-
return result.rows;
|
|
1736
|
-
}
|
|
1737
|
-
throw new Error(
|
|
1738
|
-
"Sqlite adapter execute() must return an array of rows or an object with a rows array when introspecting."
|
|
1739
|
-
);
|
|
1824
|
+
async queryRows(sql) {
|
|
1825
|
+
return this.rowsFrom(await this.#options.execute(sql), ["rows"]);
|
|
1740
1826
|
}
|
|
1741
1827
|
quoteIdentifier(name) {
|
|
1742
1828
|
return `"${name.replace(/"/g, '""')}"`;
|
|
@@ -1759,45 +1845,44 @@ var SqliteTableGrounding = class extends TableGrounding {
|
|
|
1759
1845
|
this.#adapter = adapter;
|
|
1760
1846
|
}
|
|
1761
1847
|
async getAllTableNames() {
|
|
1762
|
-
const rows = await this.#adapter.runQuery(
|
|
1763
|
-
|
|
1764
|
-
|
|
1848
|
+
const rows = await this.#adapter.runQuery(
|
|
1849
|
+
`SELECT name FROM sqlite_master WHERE type='table' ORDER BY name`,
|
|
1850
|
+
nameRow
|
|
1765
1851
|
);
|
|
1852
|
+
return rows.map((row) => row.name).filter((name) => !name.startsWith("sqlite_"));
|
|
1766
1853
|
}
|
|
1767
1854
|
async getTable(tableName) {
|
|
1768
1855
|
const columns = await this.#adapter.runQuery(
|
|
1769
|
-
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})
|
|
1856
|
+
`PRAGMA table_info(${this.#quoteIdentifier(tableName)})`,
|
|
1857
|
+
tableInfoRow
|
|
1770
1858
|
);
|
|
1771
1859
|
return {
|
|
1772
1860
|
name: tableName,
|
|
1773
1861
|
rawName: tableName,
|
|
1774
|
-
columns: columns.map((col) => ({
|
|
1775
|
-
name: col.name ?? "unknown",
|
|
1776
|
-
type: col.type ?? "unknown"
|
|
1777
|
-
}))
|
|
1862
|
+
columns: columns.map((col) => ({ name: col.name, type: col.type }))
|
|
1778
1863
|
};
|
|
1779
1864
|
}
|
|
1780
1865
|
async findOutgoingRelations(tableName) {
|
|
1781
1866
|
const rows = await this.#adapter.runQuery(
|
|
1782
|
-
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})
|
|
1867
|
+
`PRAGMA foreign_key_list(${this.#quoteIdentifier(tableName)})`,
|
|
1868
|
+
foreignKeyListRow
|
|
1783
1869
|
);
|
|
1784
1870
|
const groups = /* @__PURE__ */ new Map();
|
|
1785
1871
|
for (const row of rows) {
|
|
1786
|
-
if (row.
|
|
1872
|
+
if (row.to === null) {
|
|
1787
1873
|
continue;
|
|
1788
1874
|
}
|
|
1789
|
-
const
|
|
1790
|
-
const existing = groups.get(id);
|
|
1875
|
+
const existing = groups.get(row.id);
|
|
1791
1876
|
if (!existing) {
|
|
1792
|
-
groups.set(id, {
|
|
1877
|
+
groups.set(row.id, {
|
|
1793
1878
|
table: tableName,
|
|
1794
|
-
from: [
|
|
1795
|
-
referenced_table:
|
|
1796
|
-
to: [
|
|
1879
|
+
from: [row.from],
|
|
1880
|
+
referenced_table: row.table,
|
|
1881
|
+
to: [row.to]
|
|
1797
1882
|
});
|
|
1798
1883
|
} else {
|
|
1799
|
-
existing.from.push(
|
|
1800
|
-
existing.to.push(
|
|
1884
|
+
existing.from.push(row.from);
|
|
1885
|
+
existing.to.push(row.to);
|
|
1801
1886
|
}
|
|
1802
1887
|
}
|
|
1803
1888
|
return Array.from(groups.values());
|
|
@@ -1886,27 +1971,29 @@ var SqliteViewGrounding = class extends ViewGrounding {
|
|
|
1886
1971
|
this.#adapter = adapter;
|
|
1887
1972
|
}
|
|
1888
1973
|
async getAllViewNames() {
|
|
1889
|
-
const rows = await this.#adapter.runQuery(
|
|
1890
|
-
|
|
1974
|
+
const rows = await this.#adapter.runQuery(
|
|
1975
|
+
`SELECT name FROM sqlite_master WHERE type='view' ORDER BY name`,
|
|
1976
|
+
nameRow
|
|
1977
|
+
);
|
|
1978
|
+
return rows.map((row) => row.name);
|
|
1891
1979
|
}
|
|
1892
1980
|
async getView(viewName) {
|
|
1893
1981
|
let definition;
|
|
1894
1982
|
if (this.includeDefinition) {
|
|
1895
1983
|
const defRows = await this.#adapter.runQuery(
|
|
1896
|
-
`SELECT sql FROM sqlite_master WHERE type='view' AND name=${this.#quoteIdentifier(viewName)}
|
|
1984
|
+
`SELECT sql FROM sqlite_master WHERE type='view' AND name=${this.#quoteIdentifier(viewName)}`,
|
|
1985
|
+
sqliteMasterSqlRow
|
|
1897
1986
|
);
|
|
1898
1987
|
definition = defRows[0]?.sql ?? void 0;
|
|
1899
1988
|
}
|
|
1900
1989
|
const columns = await this.#adapter.runQuery(
|
|
1901
|
-
`PRAGMA table_info(${this.#quoteIdentifier(viewName)})
|
|
1990
|
+
`PRAGMA table_info(${this.#quoteIdentifier(viewName)})`,
|
|
1991
|
+
tableInfoRow
|
|
1902
1992
|
);
|
|
1903
1993
|
return {
|
|
1904
1994
|
name: viewName,
|
|
1905
1995
|
definition,
|
|
1906
|
-
columns: columns.map((col) => ({
|
|
1907
|
-
name: col.name ?? "unknown",
|
|
1908
|
-
type: col.type ?? "unknown"
|
|
1909
|
-
}))
|
|
1996
|
+
columns: columns.map((col) => ({ name: col.name, type: col.type }))
|
|
1910
1997
|
};
|
|
1911
1998
|
}
|
|
1912
1999
|
#quoteIdentifier(name) {
|