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]