fix(generate): emit JSON literals for JSON columns

This commit is contained in:
U1 authored and GitHub committed 2026-09-14 15:23:34 +08:00
1 parent 1ea6d2907b
commit a3aa50ded9
3 files changed
+70 -2

No files matched your search

@@ -607,8 +607,11 @@ function sqlStatementsForTable(r: GeneratedTableResult): string[] {
stmts.push(...r.statements);
} else {
const colList = r.columns.map((c) => quoteTableIdentifier(dbType.value, c)).join(", ");
// Match by column name: rows may carry a leading tbname (TDengine stable),
// so positional indexes into resolvedColumns would drift.
const dataTypeByName = new Map(r.resolvedColumns.map((c) => [c.columnName.toLowerCase(), c.dataType]));
for (const row of r.rows) {
const vals = row.map((value) => formatGeneratedValue(value)).join(", ");
const vals = row.map((value, index) => formatGeneratedValue(value, dbType.value, dataTypeByName.get(r.columns[index]?.toLowerCase() ?? ""))).join(", ");
stmts.push(`INSERT INTO ${targetTable} (${colList}) VALUES (${vals});`);
}
}