This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new f7698a36c3b [fix](statistics)Escape load stats sql. #28231
f7698a36c3b is described below

commit f7698a36c3b0565da8f4c6f025c5e39a0179b68b
Author: Jibing-Li <[email protected]>
AuthorDate: Tue Dec 12 21:21:53 2023 +0800

    [fix](statistics)Escape load stats sql. #28231
    
    Escape load stats sql, because column name may contain special characters.
    backport #28117
---
 .../src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java   | 4 ++--
 .../main/java/org/apache/doris/statistics/StatisticsRepository.java   | 4 ++--
 fe/fe-core/src/main/java/org/apache/doris/statistics/StatsId.java     | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
index bf144b1a116..06c181b78ef 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
@@ -111,7 +111,7 @@ public class OlapAnalysisTask extends BaseAnalysisTask {
             params.put("dbId", String.valueOf(db.getId()));
             params.put("tblId", String.valueOf(tbl.getId()));
             params.put("idxId", String.valueOf(info.indexId));
-            params.put("colId", String.valueOf(info.colName));
+            params.put("colId", 
StatisticsUtil.escapeSQL(String.valueOf(info.colName)));
             params.put("dataSizeFunction", getDataSizeFunction(col, false));
             params.put("dbName", db.getFullName());
             params.put("colName", info.colName);
@@ -183,7 +183,7 @@ public class OlapAnalysisTask extends BaseAnalysisTask {
         params.put("dbId", String.valueOf(db.getId()));
         params.put("tblId", String.valueOf(tbl.getId()));
         params.put("idxId", String.valueOf(info.indexId));
-        params.put("colId", String.valueOf(info.colName));
+        params.put("colId", 
StatisticsUtil.escapeSQL(String.valueOf(info.colName)));
         params.put("dataSizeFunction", getDataSizeFunction(col, false));
         params.put("catalogName", catalog.getName());
         params.put("dbName", db.getFullName());
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsRepository.java
 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsRepository.java
index 4512bf1feff..6e429f033f8 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsRepository.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsRepository.java
@@ -142,7 +142,7 @@ public class StatisticsRepository {
     private static ResultRow queryColumnStatisticById(long tblId, String 
colName, boolean isHistogram) {
         Map<String, String> map = new HashMap<>();
         String id = constructId(tblId, -1, colName);
-        map.put("id", id);
+        map.put("id", StatisticsUtil.escapeSQL(id));
         List<ResultRow> rows = isHistogram ? 
StatisticsUtil.executeQuery(FETCH_COLUMN_HISTOGRAM_TEMPLATE, map) :
                 StatisticsUtil.executeQuery(FETCH_COLUMN_STATISTIC_TEMPLATE, 
map);
         int size = rows.size();
@@ -336,7 +336,7 @@ public class StatisticsRepository {
         Map<String, String> params = new HashMap<>();
         params.put("tblId", String.valueOf(tableId));
         params.put("idxId", String.valueOf(idxId));
-        params.put("colId", colName);
+        params.put("colId", StatisticsUtil.escapeSQL(colName));
 
         return StatisticsUtil.execStatisticQuery(new StringSubstitutor(params)
                 .replace(QUERY_COLUMN_STATISTICS));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatsId.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatsId.java
index 7cd8817a1a4..9a897f4e70e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatsId.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatsId.java
@@ -59,12 +59,12 @@ public class StatsId {
 
     public String toSQL() {
         StringJoiner sj = new StringJoiner(",");
-        sj.add(StatisticsUtil.quote(id));
+        sj.add(StatisticsUtil.quote(StatisticsUtil.escapeSQL(id)));
         sj.add(String.valueOf(catalogId));
         sj.add(String.valueOf(dbId));
         sj.add(String.valueOf(tblId));
         sj.add(String.valueOf(idxId));
-        sj.add(StatisticsUtil.quote(colId));
+        sj.add(StatisticsUtil.quote(StatisticsUtil.escapeSQL(colId)));
         sj.add(partId);
         return sj.toString();
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to