diff --git a/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/AstBuilder.java b/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/AstBuilder.java index 142b3eab97c10..eaacbe808b651 100644 --- a/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/AstBuilder.java +++ b/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/AstBuilder.java @@ -13,8 +13,6 @@ // limitations under the License. package com.starrocks.connector.parser.pinot; -import com.starrocks.analysis.AnalyticExpr; -import com.starrocks.analysis.AnalyticWindow; import com.starrocks.analysis.ArithmeticExpr; import com.starrocks.analysis.Expr; import com.starrocks.analysis.FunctionCallExpr; @@ -22,24 +20,15 @@ import com.starrocks.analysis.FunctionParams; import com.starrocks.analysis.HintNode; import com.starrocks.analysis.IntLiteral; -import com.starrocks.analysis.OrderByElement; import com.starrocks.analysis.ParseNode; -import com.starrocks.sql.ast.Identifier; -import com.starrocks.sql.ast.QualifiedName; import com.starrocks.sql.parser.NodePosition; import com.starrocks.sql.parser.StarRocksParser; import com.starrocks.sql.parser.SyntaxSugars; import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.RuleContext; -import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.TerminalNode; -import java.util.ArrayList; import java.util.IdentityHashMap; import java.util.List; -import static java.util.stream.Collectors.toList; - public class AstBuilder extends com.starrocks.sql.parser.AstBuilder { protected AstBuilder(long sqlMode) { @@ -82,45 +71,4 @@ public ParseNode visitSimpleFunctionCall(StarRocksParser.SimpleFunctionCallConte return SyntaxSugars.parse(functionCallExpr); } } - - private AnalyticExpr buildOverClause(FunctionCallExpr functionCallExpr, StarRocksParser.OverContext context, - NodePosition pos) { - functionCallExpr.setIsAnalyticFnCall(true); - List orderByElements = new ArrayList<>(); - if (context.ORDER() != null) { - orderByElements = visit(context.sortItem(), OrderByElement.class); - } - List partitionExprs = visit(context.partition, Expr.class); - return new AnalyticExpr(functionCallExpr, partitionExprs, orderByElements, - (AnalyticWindow) visitIfPresent(context.windowFrame()), - context.bracketHint() == null ? null : context.bracketHint().identifier().stream() - .map(RuleContext::getText).collect(toList()), pos); - } - - private ParseNode visitIfPresent(ParserRuleContext context) { - if (context != null) { - return visit(context); - } else { - return null; - } - } - - private QualifiedName getQualifiedName(StarRocksParser.QualifiedNameContext context) { - List parts = new ArrayList<>(); - NodePosition pos = createPos(context); - for (ParseTree c : context.children) { - if (c instanceof TerminalNode) { - TerminalNode t = (TerminalNode) c; - if (t.getSymbol().getType() == StarRocksParser.DOT_IDENTIFIER) { - parts.add(t.getText().substring(1)); - } - } else if (c instanceof StarRocksParser.IdentifierContext) { - StarRocksParser.IdentifierContext identifierContext = (StarRocksParser.IdentifierContext) c; - Identifier identifier = (Identifier) visit(identifierContext); - parts.add(identifier.getValue()); - } - } - - return QualifiedName.of(parts, pos); - } } diff --git a/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/PinotParserUtils.java b/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/PinotParserUtils.java index 8febc7898270f..a5c07a248fd23 100644 --- a/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/PinotParserUtils.java +++ b/fe/fe-core/src/main/java/com/starrocks/connector/parser/pinot/PinotParserUtils.java @@ -228,7 +228,7 @@ public static double getMultiplier(String outputTimeUnitStr) { } public static String[] parseDateFormat(String pattern) { - String regex = "^(.*?)( tz\\((.*?)\\))?$"; + String regex = "^([\\d\\- :yMdHm]{10,16})( tz\\((.*?)\\))?$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(pattern); diff --git a/fe/fe-core/src/main/java/com/starrocks/sql/parser/AstBuilder.java b/fe/fe-core/src/main/java/com/starrocks/sql/parser/AstBuilder.java index 9737b09d2be96..15d6de5e7a0c6 100644 --- a/fe/fe-core/src/main/java/com/starrocks/sql/parser/AstBuilder.java +++ b/fe/fe-core/src/main/java/com/starrocks/sql/parser/AstBuilder.java @@ -7205,7 +7205,7 @@ public ParseNode visitWindowFunction(StarRocksParser.WindowFunctionContext conte return functionCallExpr; } - private AnalyticExpr buildOverClause(FunctionCallExpr functionCallExpr, StarRocksParser.OverContext context, + protected AnalyticExpr buildOverClause(FunctionCallExpr functionCallExpr, StarRocksParser.OverContext context, NodePosition pos) { functionCallExpr.setIsAnalyticFnCall(true); List orderByElements = new ArrayList<>(); @@ -8279,7 +8279,7 @@ private TableName getTableName(StarRocksParser.QualifiedNameContext context) { return qualifiedNameToTableName(getQualifiedName(context)); } - private QualifiedName getQualifiedName(StarRocksParser.QualifiedNameContext context) { + protected QualifiedName getQualifiedName(StarRocksParser.QualifiedNameContext context) { List parts = new ArrayList<>(); NodePosition pos = createPos(context); for (ParseTree c : context.children) {