This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch selectdb-doris-2.0-ikas in repository https://gitbox.apache.org/repos/asf/doris.git
commit 6b6f972db68115a6803eafe47d8e03ed88270af2 Author: eldenmoon <15605149...@163.com> AuthorDate: Thu Apr 20 18:52:04 2023 +0800 [Improve](mysql proto) handle SQL end with '\x00' --- .../java/org/apache/doris/qe/ConnectProcessor.java | 18 ++++++++++++++++++ 1 file changed, 18 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 adda35bb5e4..378c054dcc7 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 @@ -487,10 +487,28 @@ public class ConnectProcessor { auditAfterExec(origStmt, parsedStmt, statistics, true); } + private static boolean isInvisible(char c) { + return c < ' ' || c == '\u007F'; + } + + private void logInvisbleString(String str) { + StringBuilder output = new StringBuilder(); + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (isInvisible(c)) { + output.append(String.format("\\x%02X", (int) c)); + } else { + output.append(c); + } + } + LOG.debug("logInvisbleString {}", output.toString()); + } + // analyze the origin stmt and return multi-statements private List<StatementBase> parse(String originStmt) throws AnalysisException, DdlException { LOG.debug("the originStmts are: {}", originStmt); // Parse statement with parser generated by CUP&FLEX + originStmt = originStmt.replace("\u0000", ""); SqlScanner input = new SqlScanner(new StringReader(originStmt), ctx.getSessionVariable().getSqlMode()); SqlParser parser = new SqlParser(input); try { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org