From 6eca8d59b1c60455227f5ddfe1e077fd8d1a91ac Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 4 Sep 2025 17:19:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20calcite=20=E8=BD=AC?= =?UTF-8?q?=20SQL=20Server=20CONCAT=20=E5=BC=82=E5=B8=B8=20#16860?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/extensions/datasource/provider/Provider.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java index fcaaf264af..35bbacf96a 100644 --- a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java +++ b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java @@ -13,6 +13,7 @@ import org.apache.calcite.sql.SqlDialect; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.dialect.*; import org.apache.calcite.sql.parser.SqlParser; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -143,7 +144,11 @@ public abstract class Provider { } SqlParser parser = SqlParser.create(sql, SqlParser.Config.DEFAULT.withLex(Lex.JAVA)); SqlNode sqlNode = parser.parseStmt(); - return sqlNode.toSqlString(getDialect(value)).toString(); + String dialect = sqlNode.toSqlString(getDialect(value)).toString(); + if (StringUtils.equalsIgnoreCase(value.getType(), "sqlServer")) { + dialect = dialect.replaceAll("\\[CONCAT]", "CONCAT"); + } + return dialect; } catch (Exception e) { DEException.throwException(e.getMessage()); }