From ea6309059b67bd620f29d8871d24bb147e51efd9 Mon Sep 17 00:00:00 2001 From: lsy3993 <110876560+lsy3993@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:56:55 +0800 Subject: [PATCH] [improvement](outfile)support underscore prefix when select outfile (#25395) --- .../org/apache/doris/analysis/OutFileClause.java | 2 +- .../org/apache/doris/common/FeNameFormat.java | 16 ++++++++++++++++ .../apache/doris/common/FeNameFormatTest.java | 3 +++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/OutFileClause.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/OutFileClause.java index 8696edcf9e..2560f5469f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/OutFileClause.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/OutFileClause.java @@ -577,7 +577,7 @@ public class OutFileClause { if (properties.containsKey(PROP_SUCCESS_FILE_NAME)) { successFileName = properties.get(PROP_SUCCESS_FILE_NAME); - FeNameFormat.checkCommonName("file name", successFileName); + FeNameFormat.checkOutfileSuccessFileName("file name", successFileName); processedPropKeys.add(PROP_SUCCESS_FILE_NAME); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/FeNameFormat.java b/fe/fe-core/src/main/java/org/apache/doris/common/FeNameFormat.java index f108dd782d..3a77bde84b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/FeNameFormat.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/FeNameFormat.java @@ -30,12 +30,14 @@ import com.google.common.base.Strings; public class FeNameFormat { private static final String LABEL_REGEX = "^[-_A-Za-z0-9:]{1,128}$"; private static final String COMMON_NAME_REGEX = "^[a-zA-Z][a-zA-Z0-9-_]{0,63}$"; + private static final String UNDERSCORE_COMMON_NAME_REGEX = "^[_a-zA-Z][a-zA-Z0-9-_]{0,63}$"; private static final String TABLE_NAME_REGEX = "^[a-zA-Z][a-zA-Z0-9-_]*$"; private static final String USER_NAME_REGEX = "^[a-zA-Z][a-zA-Z0-9.-_]*$"; private static final String COLUMN_NAME_REGEX = "^[_a-zA-Z@0-9\\s<>/][.a-zA-Z0-9_+-/> FeNameFormat.checkCommonName("fakeType", "_commonName")); ExceptionChecker.expectThrowsNoException(() -> FeNameFormat.checkCommonName("fakeType", "common-Name")); ExceptionChecker.expectThrowsNoException(() -> FeNameFormat.checkCommonName("fakeType", "commonName-")); + + // check success file name prefix + ExceptionChecker.expectThrowsNoException(() -> FeNameFormat.checkOutfileSuccessFileName("fakeType", "_success")); } }