From f52e7ec60e84902b1434c9acefad5a1fc5e29208 Mon Sep 17 00:00:00 2001 From: Almog Gavra Date: Wed, 28 Sep 2022 07:54:11 -0700 Subject: [PATCH 1/3] add parsing for AT TIME ZONE This commit adds the custom Calcite extension for parsing AT TIME ZONE expressions, but does not yet support executing these queries. --- pinot-common/src/main/codegen/config.fmpp | 5 ++ .../src/main/codegen/includes/parserImpls.ftl | 17 +++++ .../sql/parsers/parser/SqlAtTimeZone.java | 66 +++++++++++++++++++ .../sql/parsers/CalciteSqlCompilerTest.java | 57 ++++++++++++++++ .../pinot/queries/TimestampQueriesTest.java | 12 ++++ 5 files changed, 157 insertions(+) create mode 100644 pinot-common/src/main/java/org/apache/pinot/sql/parsers/parser/SqlAtTimeZone.java diff --git a/pinot-common/src/main/codegen/config.fmpp b/pinot-common/src/main/codegen/config.fmpp index 0b1f558e8985..e6955766bc70 100644 --- a/pinot-common/src/main/codegen/config.fmpp +++ b/pinot-common/src/main/codegen/config.fmpp @@ -528,6 +528,11 @@ data: { "SqlInsertFromFile()" ] + # List of custom function syntax to add + extraBinaryExpressions: [ + "SqlAtTimeZone" + ] + # List of files in @includes directory that have parser method implementationFiles: [ "parserImpls.ftl" diff --git a/pinot-common/src/main/codegen/includes/parserImpls.ftl b/pinot-common/src/main/codegen/includes/parserImpls.ftl index 3b85f19aff78..396e256e7550 100644 --- a/pinot-common/src/main/codegen/includes/parserImpls.ftl +++ b/pinot-common/src/main/codegen/includes/parserImpls.ftl @@ -102,3 +102,20 @@ SqlNodeList SqlStmtsEof() : return stmts; } } + +void SqlAtTimeZone(List list, ExprContext exprContext, Span s) : +{ + List list2; + SqlOperator op; +} +{ + { + checkNonQueryExpression(exprContext); + s.clear().add(this); + } +