fix(sql): preserve ClickHouse lambda arrows

This commit is contained in:
vrustx authored and GitHub committed 2026-07-15 21:24:38 +08:00
1 parent c80313eed2
commit 75652b10fe
2 files changed
+22 -1

No files matched your search

+17
View File
@@ -14,6 +14,23 @@ describe("sqlFormatter", () => {
}
});
it("preserves ClickHouse lambda arrows when formatting issue #3573 SQL", async () => {
const sql = `
WITH industry_code_donghua_id_RYCzfD AS (SELECT id
FROM cd.industry_code_donghua
WHERE cd.industry_code_donghua.code IN ('INB0709', 'INB0004'))
SELECT id,ent_short,arrayMap(x->dictGet(cd.industry_donghua_dict,'name',x),prefer_industry) as prefer_industry_name,org_type,company_id,arrayCount(\`investment.be_company_id\` -> 1, \`investment.be_company_id\`) as be_company_count
FROM search_donghua.investor
WHERE arrayExists(x -> x IN industry_code_donghua_id_RYCzfD, prefer_industry)
ORDER BY be_company_count DESC,id ASC
LIMIT 0,10
`;
const formatted = await formatSqlText(sql, sqlFormatDialectForDbType("clickhouse"));
expect(formatted).toContain("x -> dictGet");
expect(formatted).not.toContain("- >");
});
it("preserves DBX brace placeholders in generic and MySQL SQL", async () => {
const sql = "SELECT ${x} AS shell_value, #{x} AS mybatis_value, '${date}' AS quoted_value";