From b45a8379ebb1ae05d0302f4e2a26a316617b6054 Mon Sep 17 00:00:00 2001 From: TengJianPing <18241664+jacktengg@users.noreply.github.com> Date: Fri, 9 Sep 2022 09:11:03 +0800 Subject: [PATCH] [bugfix](odbc) escape identifiers for sqlserver and postgresql (#12487) Delimited identifier format for sqlserver and postgresql is different from MySQL. Sqlserver use brackets ([ ]) and postgresql use double quotes(""). --- .../java/org/apache/doris/catalog/OdbcTable.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcTable.java index 0e283fd2eb..427a8c2e44 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcTable.java @@ -76,10 +76,22 @@ public class OdbcTable extends Table { return "`" + name + "`"; } + private static String mssqlProperName(String name) { + return "[" + name + "]"; + } + + private static String psqlProperName(String name) { + return "\"" + name + "\""; + } + public static String databaseProperName(TOdbcTableType tableType, String name) { switch (tableType) { case MYSQL: return mysqlProperName(name); + case SQLSERVER: + return mssqlProperName(name); + case POSTGRESQL: + return psqlProperName(name); default: return name; }