From 0fdabe6358d1e42118418c25872537b6960cff08 Mon Sep 17 00:00:00 2001 From: zachjsh Date: Wed, 17 Jan 2024 16:42:31 -0500 Subject: [PATCH 1/7] * do stuff --- .../druid/msq/sql/MSQTaskSqlEngine.java | 3 +- sql/src/main/codegen/includes/common.ftl | 27 +- sql/src/main/codegen/includes/insert.ftl | 16 +- sql/src/main/codegen/includes/replace.ftl | 12 +- .../calcite/sql/validate/ValidatorShim.java | 43 + .../sql/calcite/parser/DruidSqlIngest.java | 13 +- .../sql/calcite/parser/DruidSqlInsert.java | 43 +- .../calcite/parser/DruidSqlParserUtils.java | 110 ++- .../sql/calcite/parser/DruidSqlReplace.java | 52 +- .../sql/calcite/planner/CalcitePlanner.java | 74 +- .../calcite/planner/CalcitePlannerModule.java | 6 + .../calcite/planner/DruidCatalogReader.java | 166 ++++ .../sql/calcite/planner/DruidPlanner.java | 43 +- .../planner/DruidSqlIngestOperator.java | 120 +++ .../planner/DruidSqlToRelConverter.java | 69 ++ .../calcite/planner/DruidSqlValidator.java | 733 +++++++++++++++++- .../sql/calcite/planner/IngestHandler.java | 160 +--- .../sql/calcite/planner/QueryHandler.java | 101 +-- .../sql/calcite/planner/SelectHandler.java | 85 ++ .../planner/SqlResourceCollectorShuttle.java | 47 +- .../calcite/planner/SqlStatementHandler.java | 1 + .../druid/sql/calcite/rel/DruidRel.java | 5 + .../sql/calcite/run/NativeSqlEngine.java | 3 +- .../druid/sql/calcite/run/QueryMaker.java | 12 + .../druid/sql/calcite/run/SqlEngine.java | 3 +- .../druid/sql/calcite/view/ViewSqlEngine.java | 7 +- .../sql/calcite/CalciteScanSignatureTest.java | 7 +- .../sql/calcite/IngestionTestSqlEngine.java | 7 +- .../parser/DruidSqlParserUtilsTest.java | 34 +- .../calcite/parser/DruidSqlUnparseTest.java | 6 +- .../planner/CalcitePlannerModuleTest.java | 1 - .../calcite/planner/PlannerCaptureHook.java | 33 +- 32 files changed, 1675 insertions(+), 367 deletions(-) create mode 100644 sql/src/main/java/org/apache/calcite/sql/validate/ValidatorShim.java create mode 100644 sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidCatalogReader.java create mode 100644 sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidSqlIngestOperator.java create mode 100644 sql/src/main/java/org/apache/druid/sql/calcite/planner/DruidSqlToRelConverter.java create mode 100644 sql/src/main/java/org/apache/druid/sql/calcite/planner/SelectHandler.java diff --git a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/sql/MSQTaskSqlEngine.java b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/sql/MSQTaskSqlEngine.java index cb331760ca34..2471d8c51b49 100644 --- a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/sql/MSQTaskSqlEngine.java +++ b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/sql/MSQTaskSqlEngine.java @@ -155,7 +155,8 @@ public OverlordClient overlordClient() public QueryMaker buildQueryMakerForInsert( final String targetDataSource, final RelRoot relRoot, - final PlannerContext plannerContext + final PlannerContext plannerContext, + final RelDataType targetType ) { validateInsert(relRoot.rel, relRoot.fields, plannerContext); diff --git a/sql/src/main/codegen/includes/common.ftl b/sql/src/main/codegen/includes/common.ftl index 59915bf09ed4..8be374f2b3f5 100644 --- a/sql/src/main/codegen/includes/common.ftl +++ b/sql/src/main/codegen/includes/common.ftl @@ -18,58 +18,51 @@ */ // Using fully qualified name for Pair class, since Calcite also has a same class name being used in the Parser.jj -org.apache.druid.java.util.common.Pair PartitionGranularity() : +SqlNode PartitionGranularity() : { SqlNode e; - Granularity granularity; - String unparseString; + SqlNode result; } { ( { - granularity = Granularities.HOUR; - unparseString = "HOUR"; + result = SqlLiteral.createCharString(DruidSqlParserUtils.HOUR_GRAIN, getPos()); } | { - granularity = Granularities.DAY; - unparseString = "DAY"; + result = SqlLiteral.createCharString(DruidSqlParserUtils.DAY_GRAIN, getPos()); } | { - granularity = Granularities.MONTH; - unparseString = "MONTH"; + result = SqlLiteral.createCharString(DruidSqlParserUtils.MONTH_GRAIN, getPos()); } | { - granularity = Granularities.YEAR; - unparseString = "YEAR"; + result = SqlLiteral.createCharString(DruidSqlParserUtils.YEAR_GRAIN, getPos()); } | { - granularity = Granularities.ALL; - unparseString = "ALL"; + result = SqlLiteral.createCharString(DruidSqlParserUtils.ALL_GRAIN, getPos()); } [