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/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java index 0146fcf9bd8b..150e0b91de34 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestBase.java @@ -160,6 +160,9 @@ import org.apache.druid.sql.calcite.BaseCalciteQueryTest; import org.apache.druid.sql.calcite.external.ExternalDataSource; import org.apache.druid.sql.calcite.external.ExternalOperatorConversion; +import org.apache.druid.sql.calcite.external.HttpOperatorConversion; +import org.apache.druid.sql.calcite.external.InlineOperatorConversion; +import org.apache.druid.sql.calcite.external.LocalOperatorConversion; import org.apache.druid.sql.calcite.planner.CalciteRulesManager; import org.apache.druid.sql.calcite.planner.CatalogResolver; import org.apache.druid.sql.calcite.planner.PlannerConfig; @@ -347,6 +350,9 @@ public void configure(Binder binder) binder.install(new NestedDataModule()); NestedDataModule.registerHandlersAndSerde(); SqlBindings.addOperatorConversion(binder, ExternalOperatorConversion.class); + SqlBindings.addOperatorConversion(binder, HttpOperatorConversion.class); + SqlBindings.addOperatorConversion(binder, InlineOperatorConversion.class); + SqlBindings.addOperatorConversion(binder, LocalOperatorConversion.class); } @Override diff --git a/server/src/main/java/org/apache/druid/catalog/model/table/DatasourceDefn.java b/server/src/main/java/org/apache/druid/catalog/model/table/DatasourceDefn.java index aa50dd3498e4..ef3f34ec7a7a 100644 --- a/server/src/main/java/org/apache/druid/catalog/model/table/DatasourceDefn.java +++ b/server/src/main/java/org/apache/druid/catalog/model/table/DatasourceDefn.java @@ -84,6 +84,7 @@ public void validate(Object value, ObjectMapper jsonMapper) { String gran = decode(value, jsonMapper); if (Strings.isNullOrEmpty(gran)) { + // TODO: allow null granularity throw new IAE("Segment granularity is required."); } CatalogUtils.validateGranularity(gran); diff --git a/sql/src/main/codegen/includes/common.ftl b/sql/src/main/codegen/includes/common.ftl index 59915bf09ed4..7b86f6e648e7 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.createSymbol(DruidSqlParserUtils.GranularityGrain.HOUR_GRAIN, getPos()); } | { - granularity = Granularities.DAY; - unparseString = "DAY"; + result = SqlLiteral.createSymbol(DruidSqlParserUtils.GranularityGrain.DAY_GRAIN, getPos()); } | { - granularity = Granularities.MONTH; - unparseString = "MONTH"; + result = SqlLiteral.createSymbol(DruidSqlParserUtils.GranularityGrain.MONTH_GRAIN, getPos()); } | { - granularity = Granularities.YEAR; - unparseString = "YEAR"; + result = SqlLiteral.createSymbol(DruidSqlParserUtils.GranularityGrain.YEAR_GRAIN, getPos()); } | { - granularity = Granularities.ALL; - unparseString = "ALL"; + result = SqlLiteral.createSymbol(DruidSqlParserUtils.GranularityGrain.ALL_GRAIN, getPos()); } [