From bd0af712e776244ed4f67752b3c61fe98d6d458d Mon Sep 17 00:00:00 2001 From: feiniaofeiafei Date: Tue, 25 Feb 2025 09:53:04 +0800 Subject: [PATCH] [fix](audit) fix sql has same sqlhash in one request (#48242) ### What problem does this PR solve? Problem Summary: before this pr: send multi statements in one request: sq1(e.g. select 1 from t1);sql2(e.g. select 2 from t2);sql3(e.g. use db1) The sqlhash of sql1, sql2 and sql3 is same. after this pr: the sqlhash of sql1 and sql2 and sql3 is different. --- .../src/main/java/org/apache/doris/qe/ConnectProcessor.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java index d2b69e3798b272..cc75c72ec6f365 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java @@ -320,6 +320,9 @@ public void executeQuery(MysqlCommand mysqlCommand, String originStmt) throws Ex boolean usingOrigSingleStmt = origSingleStmtList != null && origSingleStmtList.size() == stmts.size(); for (int i = 0; i < stmts.size(); ++i) { String auditStmt = usingOrigSingleStmt ? origSingleStmtList.get(i) : convertedStmt; + if (stmts.size() > 1 && usingOrigSingleStmt) { + ctx.setSqlHash(DigestUtils.md5Hex(auditStmt)); + } try { ctx.getState().reset(); if (i > 0) {