From 9d13038599f8970d72715e2c716790cf09853295 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Wed, 12 Mar 2025 16:31:43 +0800 Subject: [PATCH] (fix)(headless)Fix schema corrector in that aliases should not be replaced. --- .../common/jsqlparser/SqlReplaceHelper.java | 4 ++ .../chat/corrector/AggCorrectorTest.java | 49 ++++++++++++++++--- .../tencent/supersonic/demo/S2VisitsDemo.java | 1 - .../supersonic/evaluation/Text2SQLEval.java | 10 ---- 4 files changed, 45 insertions(+), 19 deletions(-) diff --git a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java index 1e5bd50c3..e4373485b 100644 --- a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java +++ b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java @@ -146,6 +146,10 @@ public class SqlReplaceHelper { public static String replaceFields(String sql, Map fieldNameMap, boolean exactReplace) { Select selectStatement = SqlSelectHelper.getSelect(sql); + // alias field should not be replaced + Set aliases = SqlSelectHelper.getAliasFields(sql); + aliases.forEach(alias -> fieldNameMap.put(alias, alias)); + Set