From 2ee7005911c88af5858aef2c564b1276857d2531 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 15:30:41 +0000 Subject: [PATCH 01/60] fix and update1 --- .../druid/sql/calcite/rel/DruidQuery.java | 5 +- .../calcite/CalciteNestedDataQueryTest.java | 60 +++++++++---------- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java b/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java index f8d33f558957..77f44fb3ec30 100644 --- a/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java +++ b/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java @@ -113,12 +113,11 @@ import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import java.util.stream.Collectors; /** @@ -1674,7 +1673,7 @@ private ScanQuery toScanQuery(final boolean considerSorting) } // Compute the list of columns to select, sorted and deduped. - final SortedSet scanColumns = new TreeSet<>(outputRowSignature.getColumnNames()); + final Set scanColumns = new LinkedHashSet<>(outputRowSignature.getColumnNames()); orderByColumns.forEach(column -> scanColumns.add(column.getColumnName())); final VirtualColumns virtualColumns = getVirtualColumns(true); diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java index ec4d5812dd5d..046472c8b8a9 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java @@ -5344,7 +5344,7 @@ public void testSelectPathSelectorFilterVariantNull() new NestedFieldVirtualColumn("nest", "$.x", "v1", ColumnType.STRING) ) .columns( - "v0", "v1" + "v1", "v0" ) .filters(isNull("v0")) .context(QUERY_CONTEXT_DEFAULT) @@ -6020,41 +6020,41 @@ public void testScanAllTypesAuto() .intervals(querySegmentSpec(Filtration.eternity())) .columns( "__time", - "arrayBool", - "arrayDouble", - "arrayDoubleNulls", + "str", + "long", + "double", + "bool", + "variant", + "variantNumeric", + "variantEmptyObj", + "variantEmtpyArray", + "variantWithArrays", + "obj", + "complexObj", + "arrayString", + "arrayStringNulls", "arrayLong", "arrayLongNulls", + "arrayDouble", + "arrayDoubleNulls", + "arrayVariant", + "arrayBool", "arrayNestedLong", "arrayObject", - "arrayString", - "arrayStringNulls", - "arrayVariant", - "bool", + "null", + "cstr", + "clong", + "cdouble", + "cObj", + "cstringArray", + "cLongArray", "cDoubleArray", "cEmptyArray", "cEmptyObj", - "cEmptyObjectArray", - "cLongArray", "cNullArray", - "cObj", + "cEmptyObjectArray", "cObjectArray", - "cdouble", - "clong", - "cnt", - "complexObj", - "cstr", - "cstringArray", - "double", - "long", - "null", - "obj", - "str", - "variant", - "variantEmptyObj", - "variantEmtpyArray", - "variantNumeric", - "variantWithArrays" + "cnt" ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -7238,7 +7238,7 @@ public void testNvlJsonValueDoubleMissingColumn() ) .filters(range("v0", ColumnType.LONG, NullHandling.sqlCompatible() ? 0.0 : "0", null, true, false)) .limit(1) - .columns("v0", "v1", "v2") + .columns("v1", "v0", "v2") .build() ), NullHandling.sqlCompatible() @@ -7323,7 +7323,7 @@ public void testNvlJsonValueDoubleSometimesMissingRangeFilter() expressionVirtualColumn("v2", "notnull(nvl(\"v1\",1.0))", ColumnType.LONG) ) .filters(range("v0", ColumnType.LONG, NullHandling.sqlCompatible() ? 0.0 : "0", null, true, false)) - .columns("v0", "v1", "v2") + .columns("v1", "v0", "v2") .build() ), NullHandling.sqlCompatible() @@ -7397,7 +7397,7 @@ public void testNvlJsonValueDoubleSometimesMissingEqualityFilter() expressionVirtualColumn("v2", "notnull(nvl(\"v1\",1.0))", ColumnType.LONG) ) .filters(equality("v0", 1.0, ColumnType.DOUBLE)) - .columns("v0", "v1", "v2") + .columns("v1", "v0", "v2") .build() ), NullHandling.sqlCompatible() From 44c098ae01478c928f056d4c1604735d10225fa0 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 15:42:38 +0000 Subject: [PATCH 02/60] column order changes --- .../sql/calcite/CalciteArraysQueryTest.java | 85 ++++++++++--------- .../calcite/CalciteParameterQueryTest.java | 2 +- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java index f2ef6941fc35..4310a48b632a 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java @@ -129,7 +129,7 @@ public void testSelectConstantArrayExpressionFromTable() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(1,2)", ColumnType.LONG_ARRAY)) - .columns("dim1", "v0") + .columns("v0", "dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -214,7 +214,7 @@ public void testSelectNonConstantArrayExpressionFromTable() "array(concat(\"dim1\",'word'),'up')", ColumnType.STRING_ARRAY )) - .columns("dim1", "v0") + .columns("v0", "dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -240,7 +240,7 @@ public void testSelectNonConstantArrayExpressionFromTableForMultival() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(concat(\"dim3\",'word'),'up')", ColumnType.STRING_ARRAY)) - .columns("dim1", "v0") + .columns("v0", "dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -384,21 +384,15 @@ public void testSomeArrayFunctionsWithScanQuery() expressionVirtualColumn("v9", "array_concat(\"dim2\",\"dim3\")", ColumnType.STRING_ARRAY) ) .columns( - "d1", - "d2", "dim1", "dim2", "dim3", "l1", "l2", + "d1", + "d2", "v0", "v1", - "v10", - "v11", - "v12", - "v13", - "v14", - "v15", "v2", "v3", "v4", @@ -406,7 +400,13 @@ public void testSomeArrayFunctionsWithScanQuery() "v6", "v7", "v8", - "v9" + "v9", + "v10", + "v11", + "v12", + "v13", + "v14", + "v15" ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -525,16 +525,11 @@ public void testSomeArrayFunctionsWithScanQueryArrayColumns() expressionVirtualColumn("v9", "array_offset(\"arrayStringNulls\",0)", ColumnType.STRING) ) .columns( - "arrayDoubleNulls", - "arrayLongNulls", "arrayStringNulls", + "arrayLongNulls", + "arrayDoubleNulls", "v0", "v1", - "v10", - "v11", - "v12", - "v13", - "v14", "v2", "v3", "v4", @@ -542,7 +537,12 @@ public void testSomeArrayFunctionsWithScanQueryArrayColumns() "v6", "v7", "v8", - "v9" + "v9", + "v10", + "v11", + "v12", + "v13", + "v14" ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -670,8 +670,6 @@ public void testSomeArrayFunctionsWithScanQueryNoStringify() "dim3", "v0", "v1", - "v10", - "v11", "v2", "v3", "v4", @@ -679,7 +677,9 @@ public void testSomeArrayFunctionsWithScanQueryNoStringify() "v6", "v7", "v8", - "v9" + "v9", + "v10", + "v11" ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -863,7 +863,7 @@ public void testArrayOverlapFilterArrayStringColumns() .dataSource(CalciteTests.ARRAYS_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayStringNulls\",\"arrayString\")")) - .columns("arrayString", "arrayStringNulls") + .columns("arrayStringNulls", "arrayString") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -889,7 +889,7 @@ public void testArrayOverlapFilterArrayLongColumns() .dataSource(CalciteTests.ARRAYS_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayLongNulls\",\"arrayLong\")")) - .columns("arrayLong", "arrayLongNulls") + .columns("arrayLongNulls", "arrayLong") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -915,7 +915,7 @@ public void testArrayOverlapFilterArrayDoubleColumns() .dataSource(CalciteTests.ARRAYS_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayDoubleNulls\",\"arrayDouble\")")) - .columns("arrayDouble", "arrayDoubleNulls") + .columns("arrayDoubleNulls", "arrayDouble") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1171,7 +1171,7 @@ public void testArrayContainsFilterArrayStringColumns() .filters( expressionFilter("array_contains(\"arrayStringNulls\",\"arrayString\")") ) - .columns("arrayString", "arrayStringNulls") + .columns("arrayStringNulls", "arrayString") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1251,7 +1251,7 @@ public void testArrayContainsFilterArrayDoubleColumns() .filters( expressionFilter("array_contains(\"arrayDoubleNulls\",\"arrayDouble\")") ) - .columns("arrayDouble", "arrayDoubleNulls") + .columns("arrayDoubleNulls", "arrayDouble") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -4389,7 +4389,7 @@ public void testUnnestTwice() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("_j0.unnest", "dim1", "j0.unnest", "v0", "v1")) + .columns(ImmutableList.of("dim1", "v0", "v1", "j0.unnest", "_j0.unnest")) .build() ), NullHandling.replaceWithDefault() ? @@ -4452,7 +4452,7 @@ public void testUnnestTwiceArrayColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("_j0.unnest", "arrayLongNulls", "arrayStringNulls", "j0.unnest")) + .columns(ImmutableList.of("arrayStringNulls", "arrayLongNulls", "j0.unnest", "_j0.unnest")) .build() ), ImmutableList.of( @@ -4547,7 +4547,7 @@ public void testUnnestTwiceWithFiltersAndExpressions() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dim1", "j0.unnest", "v0", "v1", "v2")) + .columns(ImmutableList.of("dim1", "v0", "v1", "j0.unnest", "v2")) .build() ), ImmutableList.of( @@ -4601,7 +4601,7 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestCol() "'Baz'", ColumnType.STRING )) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "dimZipf", "v0")) + .columns(ImmutableList.of("dimZipf", "v0", "_j0.unnest", "__j0.unnest")) .build() ); testQuery( @@ -4699,7 +4699,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumns() ColumnType.STRING )) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "dimZipf", "v0")) + .columns(ImmutableList.of("dimZipf", "v0", "_j0.unnest", "__j0.unnest")) .build() ); testQuery( @@ -4766,7 +4766,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumns() expressionVirtualColumn("v1", "1", ColumnType.LONG) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "v0", "v1")) + .columns(ImmutableList.of("v0", "v1", "_j0.unnest", "__j0.unnest")) .build() ); testQuery( @@ -4824,12 +4824,13 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestColumnsORCombinations() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "dimZipf", "j0.unnest")) + .columns(ImmutableList.of("dimZipf", "j0.unnest", "_j0.unnest", "__j0.unnest")) .build() ); testQuery( sql, - QUERY_CONTEXT_UNNEST, expectedQuerySqlCom, + QUERY_CONTEXT_UNNEST, + expectedQuerySqlCom, ImmutableList.of( new Object[]{"27", "Baz", "Baz", "World"}, new Object[]{"27", "Baz", "Baz", "World"}, @@ -4900,7 +4901,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumnsOrFil expressionVirtualColumn("v0", "array('a','b')", ColumnType.STRING_ARRAY) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "j0.unnest", "v0")) + .columns(ImmutableList.of("v0", "j0.unnest", "_j0.unnest", "__j0.unnest")) .build() ); testQuery( @@ -5313,7 +5314,7 @@ public void testUnnestWithFiltersWithExpressionInInnerQuery() )) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "v0")) + .columns(ImmutableList.of("v0", "j0.unnest")) .build() ), ImmutableList.of( @@ -5347,7 +5348,7 @@ public void testUnnestWithInFiltersWithExpressionInInnerQuery() ColumnType.LONG)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "v0")) + .columns(ImmutableList.of("v0", "j0.unnest")) .build() ), ImmutableList.of( @@ -6865,7 +6866,7 @@ public void testUnnestWithTimeFilterInsideSubquery() .intervals(querySegmentSpec(Intervals.of( "2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) - .columns("j0.unnest", "m1") + .columns("m1", "j0.unnest") .limit(2) .context(QUERY_CONTEXT_UNNEST) .build() @@ -7009,7 +7010,7 @@ public void testUnnestWithFilterAndUnnestNestedBackToBack() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns(expressionVirtualColumn("v0", "2.0", ColumnType.FLOAT)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest", "_j0.unnest", "j0.unnest", "v0")) + .columns(ImmutableList.of("v0", "j0.unnest", "_j0.unnest", "__j0.unnest")) .build() ), ImmutableList.of( @@ -7040,7 +7041,7 @@ public void testUnnestWithLookup() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns(expressionVirtualColumn("v0", "'a'", ColumnType.STRING)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "v", "v0")) + .columns(ImmutableList.of("v0", "v", "j0.unnest")) .build() ), ImmutableList.of( diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java index bd9c5649df17..e5b181f55db0 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java @@ -94,7 +94,7 @@ public void testParamsGetOptimizedIntoConstant() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "2", ColumnType.LONG)) - .columns("dim1", "v0") + .columns("v0", "dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) From 579a848f898329abb9a85fb766867489755add3e Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 15:48:28 +0000 Subject: [PATCH 03/60] sig changes --- .../apache/druid/sql/calcite/CalciteJoinQueryTest.java | 8 ++++---- .../testUnnestWithFilters@NullHandling=sql.iq | 4 ++-- .../testUnnestWithFiltersInnerLimit@NullHandling=sql.iq | 4 ++-- ...tUnnestWithFiltersInsideAndOutside@NullHandling=sql.iq | 4 ++-- ...hFiltersWithExpressionInInnerQuery@NullHandling=sql.iq | 6 +++--- ...nFiltersWithExpressionInInnerQuery@NullHandling=sql.iq | 6 +++--- ...nTwoInlineDataSources@all_disabled@NullHandling=sql.iq | 4 ++-- ...OnTwoInlineDataSources@all_enabled@NullHandling=sql.iq | 4 ++-- ...JoinOnTwoInlineDataSources@default@NullHandling=sql.iq | 4 ++-- ...es@filter-on-value-column_disabled@NullHandling=sql.iq | 4 ++-- ...taSources@filter-rewrites-disabled@NullHandling=sql.iq | 4 ++-- ...oInlineDataSources@filter-rewrites@NullHandling=sql.iq | 4 ++-- ...woInlineDataSources@join-to-filter@NullHandling=sql.iq | 4 ++-- ...testInnerJoinCastLeft@all_disabled@NullHandling=sql.iq | 4 ++-- .../testInnerJoinCastLeft@all_enabled@NullHandling=sql.iq | 4 ++-- .../testInnerJoinCastLeft@default@NullHandling=sql.iq | 4 ++-- ...ft@filter-on-value-column_disabled@NullHandling=sql.iq | 4 ++-- ...nCastLeft@filter-rewrites-disabled@NullHandling=sql.iq | 4 ++-- ...tInnerJoinCastLeft@filter-rewrites@NullHandling=sql.iq | 4 ++-- ...stInnerJoinCastLeft@join-to-filter@NullHandling=sql.iq | 4 ++-- ..._withLeftDirectAccess@all_disabled@NullHandling=sql.iq | 8 ++++---- ...e_withLeftDirectAccess@all_enabled@NullHandling=sql.iq | 8 ++++---- ...Where_withLeftDirectAccess@default@NullHandling=sql.iq | 8 ++++---- ...ss@filter-on-value-column_disabled@NullHandling=sql.iq | 8 ++++---- ...ectAccess@filter-rewrites-disabled@NullHandling=sql.iq | 8 ++++---- ...thLeftDirectAccess@filter-rewrites@NullHandling=sql.iq | 8 ++++---- ...ithLeftDirectAccess@join-to-filter@NullHandling=sql.iq | 8 ++++---- ..._withLeftDirectAccess@all_disabled@NullHandling=sql.iq | 8 ++++---- ...s_withLeftDirectAccess@all_enabled@NullHandling=sql.iq | 8 ++++---- ...urces_withLeftDirectAccess@default@NullHandling=sql.iq | 8 ++++---- ...ss@filter-on-value-column_disabled@NullHandling=sql.iq | 8 ++++---- ...ectAccess@filter-rewrites-disabled@NullHandling=sql.iq | 8 ++++---- ...thLeftDirectAccess@filter-rewrites@NullHandling=sql.iq | 8 ++++---- ...ithLeftDirectAccess@join-to-filter@NullHandling=sql.iq | 8 ++++---- ...nyFiltersEmptyResults@all_disabled@NullHandling=sql.iq | 2 +- ...anyFiltersEmptyResults@all_enabled@NullHandling=sql.iq | 2 +- ...AndManyFiltersEmptyResults@default@NullHandling=sql.iq | 2 +- ...ts@filter-on-value-column_disabled@NullHandling=sql.iq | 2 +- ...tyResults@filter-rewrites-disabled@NullHandling=sql.iq | 2 +- ...iltersEmptyResults@filter-rewrites@NullHandling=sql.iq | 2 +- ...FiltersEmptyResults@join-to-filter@NullHandling=sql.iq | 2 +- ...iltersNonEmptyResults@all_disabled@NullHandling=sql.iq | 2 +- ...FiltersNonEmptyResults@all_enabled@NullHandling=sql.iq | 2 +- ...ManyFiltersNonEmptyResults@default@NullHandling=sql.iq | 2 +- ...ts@filter-on-value-column_disabled@NullHandling=sql.iq | 2 +- ...tyResults@filter-rewrites-disabled@NullHandling=sql.iq | 2 +- ...ersNonEmptyResults@filter-rewrites@NullHandling=sql.iq | 2 +- ...tersNonEmptyResults@join-to-filter@NullHandling=sql.iq | 2 +- ...oinOuterGroupByAndSubqueryHasLimit@NullHandling=sql.iq | 4 ++-- ..._withLeftDirectAccess@all_disabled@NullHandling=sql.iq | 8 ++++---- ...e_withLeftDirectAccess@all_enabled@NullHandling=sql.iq | 8 ++++---- ...Where_withLeftDirectAccess@default@NullHandling=sql.iq | 8 ++++---- ...ss@filter-on-value-column_disabled@NullHandling=sql.iq | 8 ++++---- ...ectAccess@filter-rewrites-disabled@NullHandling=sql.iq | 8 ++++---- ...thLeftDirectAccess@filter-rewrites@NullHandling=sql.iq | 8 ++++---- ...ithLeftDirectAccess@join-to-filter@NullHandling=sql.iq | 8 ++++---- ..._withLeftDirectAccess@all_disabled@NullHandling=sql.iq | 8 ++++---- ...r_withLeftDirectAccess@all_enabled@NullHandling=sql.iq | 8 ++++---- ...ilter_withLeftDirectAccess@default@NullHandling=sql.iq | 8 ++++---- ...ss@filter-on-value-column_disabled@NullHandling=sql.iq | 8 ++++---- ...ectAccess@filter-rewrites-disabled@NullHandling=sql.iq | 8 ++++---- ...thLeftDirectAccess@filter-rewrites@NullHandling=sql.iq | 8 ++++---- ...ithLeftDirectAccess@join-to-filter@NullHandling=sql.iq | 8 ++++---- ..._withLeftDirectAccess@all_disabled@NullHandling=sql.iq | 8 ++++---- ...s_withLeftDirectAccess@all_enabled@NullHandling=sql.iq | 8 ++++---- ...urces_withLeftDirectAccess@default@NullHandling=sql.iq | 8 ++++---- ...ss@filter-on-value-column_disabled@NullHandling=sql.iq | 8 ++++---- ...ectAccess@filter-rewrites-disabled@NullHandling=sql.iq | 8 ++++---- ...thLeftDirectAccess@filter-rewrites@NullHandling=sql.iq | 8 ++++---- ...ithLeftDirectAccess@join-to-filter@NullHandling=sql.iq | 8 ++++---- ...ualColumnOnMVFilterMultiJoinExpression@all_disabled.iq | 4 ++-- ...tualColumnOnMVFilterMultiJoinExpression@all_enabled.iq | 4 ++-- ...tVirtualColumnOnMVFilterMultiJoinExpression@default.iq | 4 ++-- ...MultiJoinExpression@filter-on-value-column_disabled.iq | 4 ++-- ...VFilterMultiJoinExpression@filter-rewrites-disabled.iq | 4 ++-- ...ColumnOnMVFilterMultiJoinExpression@filter-rewrites.iq | 4 ++-- ...lColumnOnMVFilterMultiJoinExpression@join-to-filter.iq | 4 ++-- ...oupingAndOtherAggregatorsUsingJoin@NullHandling=sql.iq | 4 ++-- .../testTimeFilterOnSubquery@NullHandling=sql.iq | 4 ++-- .../testWindowingWithScanAndSort@NullHandling=sql.iq | 6 +++--- 80 files changed, 221 insertions(+), 221 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java index 68db38052754..b9cf5a5ceb5c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java @@ -1110,7 +1110,7 @@ public void testLeftJoinTwoLookupsUsingJoinOperator(Map queryCon ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("_j0.v", "dim1", "dim2", "j0.v") + .columns("dim1", "dim2", "j0.v", "_j0.v") .context(queryContext) .build() ), @@ -3291,7 +3291,7 @@ public void testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAcce ) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) - .columns("__time", "v0") + .columns("v0", "__time") .context(queryContext) .build() ), @@ -3478,7 +3478,7 @@ public void testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess(Map", "STRING" ], + "columns" : [ "__time", "dim1", "v0", "dim3", "dim4", "dim5", "dim6", "d1", "d2", "f1", "f2", "l1", "l2", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "STRING", "STRING", "STRING", "DOUBLE", "DOUBLE", "FLOAT", "FLOAT", "LONG", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=sql.iq index 878106d9ac9d..8c9c334e27f7 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=sql.iq @@ -66,8 +66,8 @@ DruidProject(d3=[$3], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "a" }, - "columns" : [ "__time", "dim3", "v0" ], - "columnTypes" : [ "LONG", "STRING", "STRING" ], + "columns" : [ "v0", "dim3", "__time" ], + "columnTypes" : [ "STRING", "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=sql.iq index 45c21b71c3f4..13c8044dad76 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=sql.iq @@ -77,8 +77,8 @@ DruidProject(d3=[$18], druid=[logical]) } } ] }, - "columns" : [ "__time", "cnt", "d1", "d2", "dim1", "dim3", "dim4", "dim5", "dim6", "f1", "f2", "l1", "l2", "m1", "m2", "unique_dim1", "v0" ], - "columnTypes" : [ "LONG", "LONG", "DOUBLE", "DOUBLE", "STRING", "STRING", "STRING", "STRING", "STRING", "FLOAT", "FLOAT", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX", "STRING" ], + "columns" : [ "__time", "dim1", "v0", "dim3", "dim4", "dim5", "dim6", "d1", "d2", "f1", "f2", "l1", "l2", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "STRING", "STRING", "STRING", "DOUBLE", "DOUBLE", "FLOAT", "FLOAT", "LONG", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=sql.iq index 1f523a13de1f..dd3771f4b3b8 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=sql.iq @@ -63,7 +63,7 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "a" }, - "columns" : [ "__time", "dim3", "v0" ], + "columns" : [ "v0", "dim3", "__time" ], "columnTypes" : [ "LONG", "STRING", "LONG" ], "granularity" : { "type" : "all" @@ -84,8 +84,8 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.unnest", "v0" ], - "columnTypes" : [ "STRING", "LONG" ], + "columns" : [ "v0", "j0.unnest" ], + "columnTypes" : [ "LONG", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=sql.iq index 35e883c07845..494dc9dc9d29 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=sql.iq @@ -63,7 +63,7 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "matchValueType" : "STRING", "sortedValues" : [ "a", "b" ] }, - "columns" : [ "__time", "dim3", "v0" ], + "columns" : [ "v0", "dim3", "__time" ], "columnTypes" : [ "LONG", "STRING", "LONG" ], "granularity" : { "type" : "all" @@ -84,8 +84,8 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.unnest", "v0" ], - "columnTypes" : [ "STRING", "LONG" ], + "columns" : [ "v0", "j0.unnest" ], + "columnTypes" : [ "LONG", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=sql.iq index 188abdd4e4c4..52087ed62765 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=sql.iq index b1bca799e36d..33556cd485fa 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=sql.iq index 0f5d1b8fe123..09785d5c178c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=sql.iq @@ -79,8 +79,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=sql.iq index 5fe30d6b657a..8ce84d69e397 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=sql.iq index 4883e3b9894c..82d7dcdee5c0 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=sql.iq index f874137e09f5..eb38a3c33f01 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=sql.iq index 8980b7c4160c..5ae0e78c10c8 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=sql.iq @@ -82,8 +82,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=sql.iq index 2449b9427743..c9644e43b2ec 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=sql.iq index fb1f9aa91513..e662c85f7053 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=sql.iq index b0a97e2b2991..18b7b1a29f8f 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=sql.iq @@ -77,8 +77,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=sql.iq index 2f250bce5b9f..7b9352b740e2 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=sql.iq index 1dbe2ef067fc..c11d79f00bf9 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=sql.iq index bdc925467635..651d9c50d741 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=sql.iq index 9593087abadc..91b896f8e989 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=sql.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq index e95f2f14e852..e553be29d9f1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq index f5cf5cd53aaf..fa054c162254 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq index 4f1a6c50e7d6..9f04823844c1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq @@ -72,8 +72,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -122,8 +122,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq index 047a0d9f3d61..8ab934aa38b5 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq index 6e1a7ec7603c..68861b993c76 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq index d5e130f03a5f..3b35adf2a126 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq index 1753c081a4b3..154056ddf061 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq index 2d034cb92009..bd2b636c01d4 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq index b5533f936323..246e608caa57 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq index 62cc25dc99d1..c8506ace31dc 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq @@ -72,8 +72,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -122,8 +122,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq index 27133219625a..fced12990b83 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq index f2d6e9b0a0bf..610260e4e65d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq index ef9aff735e4a..9ebbc7e18d35 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq index 8578eedb0671..50484dab8b94 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=sql.iq index 01ad3ca130e3..a67633991e41 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=sql.iq index 30d480efebbb..362c59a2d5f1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=sql.iq index c5df737ee4b1..b9f8ae2b6cfc 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=sql.iq @@ -292,7 +292,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq index ad0ff57854a1..94fe9ca1953c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq index 6005240994ad..d3ac1b35a610 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=sql.iq index 2c0f5acd75d2..32543d4b310a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=sql.iq index 33b928001a90..a90c49a5c08c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=sql.iq @@ -295,7 +295,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=sql.iq index 6ad76f4adfe9..97cebac6335f 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=sql.iq index 166318075962..8dece7f89ea9 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=sql.iq index 5e06a06055a2..d927029ea2c8 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=sql.iq @@ -293,7 +293,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq index 2b0a91f52ee2..02455d8a2787 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq index b317aac17079..aec779732b7a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=sql.iq index 79dc2bbc12ee..3d5da0011b20 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=sql.iq index f1249ac37bca..7d01bbbc1639 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=sql.iq @@ -296,7 +296,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=sql.iq index ec8a580d34ca..f8829b31e1f1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=sql.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], EXPR$1=[AVG($2)], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 10, - "columns" : [ "dim2", "j0.m1", "m1", "m2" ], - "columnTypes" : [ "STRING", "FLOAT", "FLOAT", "DOUBLE" ], + "columns" : [ "dim2", "m1", "m2", "j0.m1" ], + "columnTypes" : [ "STRING", "FLOAT", "DOUBLE", "FLOAT" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq index d43b57114441..93293e3f7e80 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq index 05f624ac37a4..90f37d025af6 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq index 31c46ccc3b29..ab43f9604a69 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=sql.iq @@ -72,8 +72,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -122,8 +122,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq index 07d5d256b617..0d4e75093b95 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq index d764e7d5e3c7..602e70825959 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq index ae6924c1b875..e719d27e6dff 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq index 904f6fec8d8f..c74c2744c540 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=sql.iq index 4e6d825da40c..5682326c03e0 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=sql.iq index ea1bcd75f44d..098f6a50bc90 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=sql.iq index ebe0fbc3f718..a27da638639d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=sql.iq @@ -72,8 +72,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -128,8 +128,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq index dcd84462bbec..295802c72308 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq index 11442bae8a5c..8815732fe58c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq index 4f254f1976ba..d5e5d614e3dc 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq index 5d8f487a7806..0a1b6a66606f 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -131,8 +131,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq index aa4220f4f427..7dbc2ff6923d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq index 844b53dccc3d..e4c05ae03b3c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq index ccbdf92c4575..40515f8b62d5 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=sql.iq @@ -72,8 +72,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -122,8 +122,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq index 68f6a9250e67..54427093b152 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq index 9c1a8d237960..9227fb31b5e3 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq index 76ee90cd8770..580ed6694725 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq index ecd48b65d915..800a422b8f09 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=sql.iq @@ -75,8 +75,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "matchValueType" : "STRING", "matchValue" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -125,8 +125,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_disabled.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_disabled.iq index af6c617d6d69..2b57678c3758 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_disabled.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_disabled.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_enabled.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_enabled.iq index e82f708d2bb1..df9ecf85c1d3 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_enabled.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@all_enabled.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@default.iq index 5c154e61c299..fb32e0c61306 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@default.iq @@ -172,7 +172,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -189,7 +189,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-on-value-column_disabled.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-on-value-column_disabled.iq index 8e9600922765..9290f7f5adfb 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-on-value-column_disabled.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-on-value-column_disabled.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites-disabled.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites-disabled.iq index a258e98d01f7..290acad460a1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites-disabled.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites-disabled.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites.iq index 63ea77bfbbe9..20de420259ee 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@filter-rewrites.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@join-to-filter.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@join-to-filter.iq index 8f9b506aa1a6..c6a483ee560c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@join-to-filter.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testVirtualColumnOnMVFilterMultiJoinExpression@join-to-filter.iq @@ -175,7 +175,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "isAllowList" : true } ], "resultFormat" : "compactedList", - "columns" : [ "_v0", "dim3" ], + "columns" : [ "dim3", "_v0" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" @@ -192,7 +192,7 @@ DruidProject(dim3=[$0], dim30=[$2], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.dim3", "dim3" ], + "columns" : [ "dim3", "_j0.dim3" ], "columnTypes" : [ "STRING", "STRING" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=sql.iq index 0f899348f837..315013109433 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=sql.iq @@ -232,8 +232,8 @@ DruidProject(dim2=[$0], EXPR$1=[$1], EXPR$2=[$3], EXPR$3=[$5], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.a0", "a0", "d0", "j0.a0" ], - "columnTypes" : [ "LONG", "LONG", "STRING", "LONG" ], + "columns" : [ "d0", "a0", "j0.a0", "_j0.a0" ], + "columnTypes" : [ "STRING", "LONG", "LONG", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=sql.iq index 40b9d8747773..7906b3d4c0fd 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=sql.iq @@ -47,8 +47,8 @@ DruidProject(__time=[$0], m1=[$5], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 100, - "columns" : [ "__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1" ], - "columnTypes" : [ "LONG", "LONG", "STRING", "STRING", "STRING", "FLOAT", "DOUBLE", "COMPLEX" ], + "columns" : [ "__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=sql.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=sql.iq index b18827be5b03..3eb700c018fd 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=sql.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=sql.iq @@ -148,8 +148,8 @@ DruidProject(ranking=[$2], trend_score=[$1], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 10, - "columns" : [ "a0", "d1", "w0" ], - "columnTypes" : [ "LONG", "DOUBLE", "LONG" ], + "columns" : [ "d1", "a0", "w0" ], + "columnTypes" : [ "DOUBLE", "LONG", "LONG" ], "granularity" : { "type" : "all" }, @@ -190,7 +190,7 @@ DruidProject(ranking=[$2], trend_score=[$1], druid=[logical]) "offset" : 0, "limit" : 9223372036854775807 }, - "projectedColumns" : [ "a0", "w0" ], + "projectedColumns" : [ "w0", "a0" ], "virtualColumns" : null, "ordering" : null } ], From c96ef1a3edc5bed04c345fd1b51ea66323747683 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 17:06:23 +0000 Subject: [PATCH 04/60] column order in joinqueytest --- .../sql/calcite/CalciteJoinQueryTest.java | 62 +++++++++---------- ...estGroupByWithLiteralInSubqueryGrouping.iq | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java index b9cf5a5ceb5c..a4fea481954b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java @@ -998,7 +998,7 @@ public void testFilterAndGroupByLookupUsingPostAggregationJoinOperator(Map queryContext) ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.k", "j0.v", "m1") + .columns("m1", "j0.k", "j0.v") .context(queryContext) .build() ), @@ -2221,7 +2221,7 @@ public void testInnerJoinCastRight(Map queryContext) ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.k", "j0.v", "m1") + .columns("m1", "j0.k", "j0.v") .context(queryContext) .build() ), @@ -2268,7 +2268,7 @@ public void testInnerJoinMismatchedTypes(Map queryContext) ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.k", "j0.v", "m1") + .columns("m1", "j0.k", "j0.v") .context(queryContext) .build() ), @@ -2386,7 +2386,7 @@ public void testLeftJoinLookupOntoLookupUsingJoinOperator(Map qu ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("_j0.v", "dim2", "j0.v") + .columns("dim2", "j0.v", "_j0.v") .context(queryContext) .build() ), @@ -2439,7 +2439,7 @@ public void testLeftJoinThreeLookupsUsingJoinOperator(Map queryC ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__j0.v", "_j0.v", "dim1", "dim2", "j0.v") + .columns("dim1", "dim2", "j0.v", "_j0.v", "__j0.v") .context(queryContext) .build() ), @@ -2577,7 +2577,7 @@ public void testSelectOnLookupUsingFullJoinOperator(Map queryCon not(equality("j0.v", "xxx", ColumnType.STRING)) ) ) - .columns("cnt", "dim1", "j0.k", "j0.v", "m1") + .columns("dim1", "m1", "cnt", "j0.k", "j0.v") .context(queryContext) .build() ), @@ -2895,7 +2895,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter(Map ) .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "'10.1'", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -2926,7 +2926,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter(Map .virtualColumns(expressionVirtualColumn("_v0", "'10.1'", ColumnType.STRING)) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "'10.1'", ColumnType.STRING)) - .columns("__time", "_v0") + .columns("_v0", "__time") .context(queryContext) .build() ), @@ -2985,7 +2985,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAcces ) )) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) - .columns("__time", "v0") + .columns("v0", "__time") .context(queryContext) .build() ), @@ -3016,7 +3016,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere(Map .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "'10.1'", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3038,7 +3038,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere(Map ) .virtualColumns(expressionVirtualColumn("_v0", "'10.1'", ColumnType.STRING)) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "_v0") + .columns("_v0", "__time") .context(queryContext) .build() ), @@ -3087,7 +3087,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAcces ) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) - .columns("__time", "v0") + .columns("v0", "__time") .context(queryContext) .build() ), @@ -3118,7 +3118,7 @@ public void testLeftJoinOnTwoInlineDataSources(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3140,7 +3140,7 @@ public void testLeftJoinOnTwoInlineDataSources(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "\'10.1\'", ColumnType.STRING)) - .columns("__time", "_v0") + .columns("_v0", "__time") .context(queryContext) .build() ), @@ -3189,7 +3189,7 @@ public void testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess(Map queryContext .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3344,7 +3344,7 @@ public void testInnerJoinOnTwoInlineDataSources(Map queryContext ) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "\'10.1\'", ColumnType.STRING)) - .columns("__time", "_v0") + .columns("_v0", "__time") .context(queryContext) .build() ), @@ -3384,7 +3384,7 @@ public void testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("(\"m1\" > \"j0.m1\")")) - .columns("j0.m1", "m1") + .columns("m1", "j0.m1") .context(queryContext) .build() ), @@ -4787,7 +4787,7 @@ public void testJoinWithEquiAndNonEquiCondition(Map queryContext .filters( equality("v0", 6.0, ColumnType.DOUBLE) ) - .columns("j0.m1", "m1") + .columns("m1", "j0.m1") .context(queryContext) .build() ), @@ -5357,7 +5357,7 @@ public void testVirtualColumnOnMVFilterMultiJoinExpression(Map q ImmutableSet.of("a"), true )) - .columns("_j0.dim3", "dim3") + .columns("dim3", "_j0.dim3") .context(queryContext) .build() ), @@ -5393,7 +5393,7 @@ public void testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults(Map Date: Wed, 6 Nov 2024 17:11:44 +0000 Subject: [PATCH 05/60] column order in calcitequerytest --- .../org/apache/druid/sql/calcite/CalciteQueryTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java index 791e5bf4bb79..d6db17d85781 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java @@ -7775,7 +7775,7 @@ public void testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJo ) .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("_j0.a0", "a0", "d0", "j0.a0")) + .columns(ImmutableList.of("d0", "a0", "j0.a0", "_j0.a0")) .build() ), NullHandling.sqlCompatible() @@ -15874,7 +15874,7 @@ public void testInGroupByLimitOutGroupByOrderBy() false ) ) - .setProjectedColumns("a0", "d0") + .setProjectedColumns("d0", "a0") .build() ) .build() @@ -15956,7 +15956,7 @@ public void testInGroupByOrderByLimitOutGroupByOrderByLimit() false ) ) - .setProjectedColumns("a0", "d0") + .setProjectedColumns("d0", "a0") .build() ) .build() @@ -16052,7 +16052,7 @@ public void testWindowingWithScanAndSort() .build() ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("a0", "w0") + .columns("w0", "a0") .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(10) @@ -16070,7 +16070,7 @@ public void testWindowingWithScanAndSort() .setLeafOperators( OperatorFactoryBuilders.scanOperatorFactoryBuilder() .setOffsetLimit(0, Long.MAX_VALUE) - .setProjectedColumns("a0", "w0") + .setProjectedColumns("w0", "a0") .build() ) .build() From 9a963c6fd19b16188c5fb002ab5749ecad68456c Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 17:15:56 +0000 Subject: [PATCH 06/60] fix subq --- .../druid/sql/calcite/CalciteSubqueryTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java index b8d638e59ca0..80ca16b7e825 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java @@ -1033,10 +1033,10 @@ public void testSelfJoin(String testName, Map queryContext) .columns( ImmutableList.of( "__time", - "cnt", "dim1", "dim2", "dim3", + "cnt", "m1", "m2", "unique_dim1" @@ -1140,7 +1140,7 @@ public void testJoinWithSubqueries(String testName, Map queryCon CalciteTests.createJoinableFactoryWrapper() ) ) - .columns("_j0.j0.dim2", "dim1") + .columns("dim1", "_j0.j0.dim2") .eternityInterval() .build() ), @@ -1313,7 +1313,7 @@ public void testSingleValueStringAgg(String testName, Map queryC .offset(6L) .limit(1L) .order(Order.DESCENDING) - .columns("__time", "channel") + .columns("channel", "__time") .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1465,7 +1465,7 @@ public void testGroupBySubqueryWithEarliestAggregator(String testName, Map Date: Wed, 6 Nov 2024 17:18:59 +0000 Subject: [PATCH 07/60] fix a few more --- .../apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java | 2 +- .../org/apache/druid/sql/calcite/CalciteStrictInsertTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java index ef442ecac43c..2acfffad0727 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java @@ -288,7 +288,7 @@ public void testCorrelatedSubqueryWithLeftFilter_leftDirectAccessDisabled(Map Date: Wed, 6 Nov 2024 17:25:46 +0000 Subject: [PATCH 08/60] up --- .../CalciteLookupFunctionQueryTest.java | 2 +- .../sql/calcite/CalciteReplaceDmlTest.java | 30 +++++++++---------- .../sql/calcite/CalciteTableAppendTest.java | 4 +-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java index 2c8920fb5311..4655af02e5dd 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java @@ -2138,7 +2138,7 @@ private List> buildFilterTestExpectedQueryAlwaysFalse() .build() )) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("$f1", "EXPR$0") + .columns("EXPR$0", "$f1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java index cb819c3634a1..7d788e77034e 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java @@ -91,7 +91,7 @@ public void testReplaceFromTableWithReplaceAll() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -110,7 +110,7 @@ public void testReplaceFromTableWithDeleteWhereClause() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.DAY), @@ -137,7 +137,7 @@ public void testReplaceFromTableWithTimeZoneInQueryContext() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.DAY), @@ -162,7 +162,7 @@ public void testReplaceFromTableWithIntervalLargerThanOneGranularity() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -188,7 +188,7 @@ public void testReplaceFromTableWithComplexDeleteWhereClause() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -213,7 +213,7 @@ public void testReplaceFromTableWithBetweenClause() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -359,7 +359,7 @@ public void testReplaceIntoQualifiedTable() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -548,7 +548,7 @@ public void testReplaceWithPartitionedByAndLimitOffset() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0") + .columns("__time", "v0", "dim1") .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .limit(10) .offset(20) @@ -582,7 +582,7 @@ public void testReplaceWithClusteredBy() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0") + .columns("__time", "v0", "dim1") .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .orderBy( ImmutableList.of( @@ -757,9 +757,9 @@ public void testExplainReplaceTimeChunksWithPartitioningAndClustering() throws I final ScanQuery expectedQuery = newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .orderBy(ImmutableList.of(OrderBy.ascending("dim1"))) - .columnTypes(LONG, LONG, STRING, STRING, STRING, FLOAT, DOUBLE, ofComplex("hyperUnique")) + .columnTypes(LONG, STRING, STRING, STRING, LONG, FLOAT, DOUBLE, ofComplex("hyperUnique")) .context( queryJsonMapper.readValue( "{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"}", @@ -774,7 +774,7 @@ public void testExplainReplaceTimeChunksWithPartitioningAndClustering() throws I + "], signature=[{__time:LONG, dim1:STRING, dim2:STRING, dim3:STRING, cnt:LONG, m1:FLOAT, m2:DOUBLE, unique_dim1:COMPLEX}])\n"; - final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"dim1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"cnt\",\"dim1\",\"dim2\",\"dim3\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; + final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"dim1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"dim1\",\"dim2\",\"dim3\",\"cnt\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"LONG\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; final String resources = "[{\"name\":\"dst\",\"type\":\"DATASOURCE\"},{\"name\":\"foo\",\"type\":\"DATASOURCE\"}]"; final String attributes = "{\"statementType\":\"REPLACE\",\"targetDataSource\":\"dst\",\"partitionedBy\":\"DAY\",\"clusteredBy\":[\"dim1\"],\"replaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\"}"; @@ -835,7 +835,7 @@ public void testExplainReplaceWithLimitAndClusteredByOrdinals() throws IOExcepti final ScanQuery expectedQuery = newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .limit(10) .orderBy( ImmutableList.of( @@ -845,7 +845,7 @@ public void testExplainReplaceWithLimitAndClusteredByOrdinals() throws IOExcepti OrderBy.ascending("dim2") ) ) - .columnTypes(LONG, LONG, STRING, STRING, STRING, FLOAT, DOUBLE, ColumnType.ofComplex("hyperUnique")) + .columnTypes(LONG, STRING, STRING, STRING, LONG, FLOAT, DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( queryJsonMapper.readValue( "{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"}", @@ -859,7 +859,7 @@ public void testExplainReplaceWithLimitAndClusteredByOrdinals() throws IOExcepti + queryJsonMapper.writeValueAsString(expectedQuery) + "], signature=[{__time:LONG, dim1:STRING, dim2:STRING, dim3:STRING, cnt:LONG, m1:FLOAT, m2:DOUBLE, unique_dim1:COMPLEX}])\n"; - final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"limit\":10,\"orderBy\":[{\"columnName\":\"__time\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"dim3\",\"order\":\"ascending\"},{\"columnName\":\"dim2\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"cnt\",\"dim1\",\"dim2\",\"dim3\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; + final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"limit\":10,\"orderBy\":[{\"columnName\":\"__time\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"dim3\",\"order\":\"ascending\"},{\"columnName\":\"dim2\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"dim1\",\"dim2\",\"dim3\",\"cnt\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"LONG\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; final String resources = "[{\"name\":\"dst\",\"type\":\"DATASOURCE\"},{\"name\":\"foo\",\"type\":\"DATASOURCE\"}]"; final String attributes = "{\"statementType\":\"REPLACE\",\"targetDataSource\":\"dst\",\"partitionedBy\":\"HOUR\"," + "\"clusteredBy\":[\"__time\",\"dim1\",\"dim3\",\"dim2\"],\"replaceTimeChunks\":\"2000-01-01T00:00:00.000Z/2000-01-02T00:00:00.000Z\"}"; diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java index 02b8787df233..201c35cec3e4 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java @@ -89,7 +89,7 @@ public void testAppend2() unionDataSource(CalciteTests.DATASOURCE1, CalciteTests.DATASOURCE3) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("d1", "dim1", "dim4", "f1") + .columns("dim1", "dim4", "d1", "f1") .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -130,7 +130,7 @@ public void testAppendSameTableMultipleTimes() unionDataSource(CalciteTests.DATASOURCE1, CalciteTests.DATASOURCE3, CalciteTests.DATASOURCE1) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("d1", "dim1", "dim4", "f1") + .columns("dim1", "dim4", "d1", "f1") .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .filters(equality("dim1", "2", ColumnType.STRING)) From cb35cf64017129c8b019fe171b86ed8699e99072 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 18:03:55 +0000 Subject: [PATCH 09/60] updates --- .../sql/calcite/CalciteSelectQueryTest.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java index e053da4d7442..a8373bd962ef 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java @@ -322,7 +322,7 @@ public void testSelectConstantExpressionFromTable() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "2", ColumnType.LONG)) - .columns("dim1", "v0") + .columns("v0", "dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -634,7 +634,7 @@ public void testSelectStarWithDimFilter() equality("dim2", "a", ColumnType.STRING) ) ) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -978,7 +978,7 @@ public void testSelectCurrentTimeAndDateLosAngeles() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("CURRENT_DATE", "CURRENT_TIMESTAMP", "EXPR$1", "EXPR$2", "EXPR$3", "EXPR$4", "EXPR$6") + .columns("CURRENT_TIMESTAMP", "EXPR$1", "EXPR$2", "EXPR$3", "EXPR$4", "CURRENT_DATE", "EXPR$6") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(context) .build() @@ -1131,7 +1131,7 @@ public void testSelectStar() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1163,7 +1163,7 @@ public void testSelectStarOnForbiddenTable() newScanQueryBuilder() .dataSource(CalciteTests.FORBIDDEN_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "cnt", "m1", "m2", "unique_dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1311,7 +1311,7 @@ public void testExplainSelectStar() skipVectorize(); final String query = "EXPLAIN PLAN FOR SELECT * FROM druid.foo"; - final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"cnt\",\"dim1\",\"dim2\",\"dim3\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; + final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"dim1\",\"dim2\",\"dim3\",\"cnt\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"LONG\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; final String resources = "[{\"name\":\"foo\",\"type\":\"DATASOURCE\"}]"; final String attributes = "{\"statementType\":\"SELECT\"}"; @@ -1342,7 +1342,7 @@ public void testSelectStarWithLimit() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1367,7 +1367,7 @@ public void testSelectStarWithLimitAndOffset() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .offset(1) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1446,7 +1446,7 @@ public void testSelectStarWithLimitTimeDescending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1")) + .columns(ImmutableList.of("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1472,7 +1472,7 @@ public void testSelectStarWithoutLimitTimeAscending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1")) + .columns(ImmutableList.of("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1")) .limit(Long.MAX_VALUE) .order(Order.ASCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1522,7 +1522,7 @@ public void testSelectSingleColumnWithLimitDescending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns(ImmutableList.of("dim1", "__time")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1572,7 +1572,7 @@ public void testSelectLimitWrapping() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns(ImmutableList.of("dim1", "__time")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1596,7 +1596,7 @@ public void testSelectLimitWrappingOnTopOfOffset() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns(ImmutableList.of("dim1", "__time")) .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1621,7 +1621,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndLowLimit() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns(ImmutableList.of("dim1", "__time")) .offset(1) .limit(1) .order(Order.DESCENDING) @@ -1645,7 +1645,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndHighLimit() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns(ImmutableList.of("dim1", "__time")) .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1818,7 +1818,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerLimitDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1874,7 +1874,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerAndOuterLimitDesc .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) - .columns(ImmutableList.of("__time", "v0")) + .columns(ImmutableList.of("v0", "__time")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) From d0b25e5692ede0d481188d1ce5b26a6a473fcbe5 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 20:16:42 +0000 Subject: [PATCH 10/60] up --- .../sql/calcite/CalciteInsertDmlTest.java | 26 +++++++++---------- .../sql/calcite/IngestTableFunctionTest.java | 4 +-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java index 61d955c3be7f..c7de25c91802 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java @@ -88,7 +88,7 @@ public void testInsertFromTable() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -160,7 +160,7 @@ public void testInsertFromViewC() expressionVirtualColumn("v0", "substring(\"dim1\", 0, 1)", ColumnType.STRING), expressionVirtualColumn("v1", "'a'", ColumnType.STRING) ) - .columns("j0.l2", "v0", "v1") + .columns("v0", "v1", "j0.l2") .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -178,7 +178,7 @@ public void testInsertIntoExistingTable() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -196,7 +196,7 @@ public void testInsertIntoQualifiedTable() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -596,7 +596,7 @@ public void testInsertWithPartitionedBy() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0") + .columns("__time", "v0", "dim1") .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .context(queryContextWithGranularity(Granularities.HOUR)) .build() @@ -744,7 +744,7 @@ public void testExplainPlanInsertWithClusteredBy() throws JsonProcessingExceptio // Test correctness of the query when only the CLUSTERED BY clause is present final String explanation = - "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"floor(\\\"m1\\\")\",\"outputType\":\"FLOAT\"},{\"type\":\"expression\",\"name\":\"v1\",\"expression\":\"ceil(\\\"m2\\\")\",\"outputType\":\"DOUBLE\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"v1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"dim1\",\"v0\",\"v1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"FLOAT\",\"DOUBLE\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"v0\",\"type\":\"FLOAT\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"v1\",\"type\":\"DOUBLE\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"v0\",\"outputColumn\":\"floor_m1\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"v1\",\"outputColumn\":\"ceil_m2\"}]}]"; + "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"floor(\\\"m1\\\")\",\"outputType\":\"FLOAT\"},{\"type\":\"expression\",\"name\":\"v1\",\"expression\":\"ceil(\\\"m2\\\")\",\"outputType\":\"DOUBLE\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"v1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"v0\",\"dim1\",\"v1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"FLOAT\",\"STRING\",\"DOUBLE\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"v0\",\"type\":\"FLOAT\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"v1\",\"type\":\"DOUBLE\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"v0\",\"outputColumn\":\"floor_m1\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"v1\",\"outputColumn\":\"ceil_m2\"}]}]"; testQuery( PLANNER_CONFIG_NATIVE_QUERY_EXPLAIN, @@ -797,7 +797,7 @@ public void testExplainPlanInsertWithAsSubQueryClusteredBy() + "CLUSTERED BY 2, 3"; // Test correctness of the query when only the CLUSTERED BY clause is present - final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"external\",\"inputSource\":{\"type\":\"inline\",\"data\":\"{\\\" \\\": 1681794225551, \\\"namespace\\\": \\\"day1\\\", \\\"country\\\": \\\"one\\\"}\\n{\\\"__time\\\": 1681794225558, \\\"namespace\\\": \\\"day2\\\", \\\"country\\\": \\\"two\\\"}\"},\"inputFormat\":{\"type\":\"json\"},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"namespace\",\"type\":\"STRING\"},{\"name\":\"country\",\"type\":\"STRING\"}]},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"namespace\",\"order\":\"ascending\"},{\"columnName\":\"country\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"country\",\"namespace\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"{\\\"type\\\":\\\"all\\\"}\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"namespace\",\"type\":\"STRING\"},{\"name\":\"country\",\"type\":\"STRING\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"namespace\",\"outputColumn\":\"namespace\"},{\"queryColumn\":\"country\",\"outputColumn\":\"country\"}]}]"; + final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"external\",\"inputSource\":{\"type\":\"inline\",\"data\":\"{\\\" \\\": 1681794225551, \\\"namespace\\\": \\\"day1\\\", \\\"country\\\": \\\"one\\\"}\\n{\\\"__time\\\": 1681794225558, \\\"namespace\\\": \\\"day2\\\", \\\"country\\\": \\\"two\\\"}\"},\"inputFormat\":{\"type\":\"json\"},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"namespace\",\"type\":\"STRING\"},{\"name\":\"country\",\"type\":\"STRING\"}]},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"namespace\",\"order\":\"ascending\"},{\"columnName\":\"country\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"namespace\",\"country\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"{\\\"type\\\":\\\"all\\\"}\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"namespace\",\"type\":\"STRING\"},{\"name\":\"country\",\"type\":\"STRING\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"namespace\",\"outputColumn\":\"namespace\"},{\"queryColumn\":\"country\",\"outputColumn\":\"country\"}]}]"; testQuery( PLANNER_CONFIG_NATIVE_QUERY_EXPLAIN, @@ -860,7 +860,7 @@ public void testExplainPlanInsertJoinQuery() // Test correctness of the query when only the CLUSTERED BY clause is present - final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"join\",\"left\":{\"type\":\"external\",\"inputSource\":{\"type\":\"http\",\"uris\":[\"https://boo.gz\"],\"requestHeaders\":{}},\"inputFormat\":{\"type\":\"json\"},\"signature\":[{\"name\":\"isRobot\",\"type\":\"STRING\"},{\"name\":\"timestamp\",\"type\":\"STRING\"},{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"countryIsoCode\",\"type\":\"STRING\"},{\"name\":\"regionName\",\"type\":\"STRING\"}]},\"right\":{\"type\":\"query\",\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"external\",\"inputSource\":{\"type\":\"http\",\"uris\":[\"https://foo.tsv\"],\"requestHeaders\":{}},\"inputFormat\":{\"type\":\"tsv\",\"delimiter\":\"\\t\",\"findColumnsFromHeader\":true},\"signature\":[{\"name\":\"Country\",\"type\":\"STRING\"},{\"name\":\"Capital\",\"type\":\"STRING\"},{\"name\":\"ISO3\",\"type\":\"STRING\"},{\"name\":\"ISO2\",\"type\":\"STRING\"}]},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"Capital\",\"ISO2\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"STRING\",\"STRING\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false}},\"rightPrefix\":\"j0.\",\"condition\":\"(\\\"countryIsoCode\\\" == \\\"j0.ISO2\\\")\",\"joinType\":\"LEFT\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"timestamp_parse(\\\"timestamp\\\",null,'UTC')\",\"outputType\":\"LONG\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"isRobot\",\"order\":\"ascending\"},{\"columnName\":\"j0.Capital\",\"order\":\"ascending\"},{\"columnName\":\"regionName\",\"order\":\"ascending\"}],\"columns\":[\"isRobot\",\"j0.Capital\",\"regionName\",\"v0\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"STRING\",\"STRING\",\"STRING\",\"LONG\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"v0\",\"type\":\"LONG\"},{\"name\":\"isRobot\",\"type\":\"STRING\"},{\"name\":\"j0.Capital\",\"type\":\"STRING\"},{\"name\":\"regionName\",\"type\":\"STRING\"}],\"columnMappings\":[{\"queryColumn\":\"v0\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"isRobot\",\"outputColumn\":\"isRobotAlias\"},{\"queryColumn\":\"j0.Capital\",\"outputColumn\":\"countryCapital\"},{\"queryColumn\":\"regionName\",\"outputColumn\":\"regionName\"}]}]"; + final String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"join\",\"left\":{\"type\":\"external\",\"inputSource\":{\"type\":\"http\",\"uris\":[\"https://boo.gz\"],\"requestHeaders\":{}},\"inputFormat\":{\"type\":\"json\"},\"signature\":[{\"name\":\"isRobot\",\"type\":\"STRING\"},{\"name\":\"timestamp\",\"type\":\"STRING\"},{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"countryIsoCode\",\"type\":\"STRING\"},{\"name\":\"regionName\",\"type\":\"STRING\"}]},\"right\":{\"type\":\"query\",\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"external\",\"inputSource\":{\"type\":\"http\",\"uris\":[\"https://foo.tsv\"],\"requestHeaders\":{}},\"inputFormat\":{\"type\":\"tsv\",\"delimiter\":\"\\t\",\"findColumnsFromHeader\":true},\"signature\":[{\"name\":\"Country\",\"type\":\"STRING\"},{\"name\":\"Capital\",\"type\":\"STRING\"},{\"name\":\"ISO3\",\"type\":\"STRING\"},{\"name\":\"ISO2\",\"type\":\"STRING\"}]},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"Capital\",\"ISO2\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"STRING\",\"STRING\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false}},\"rightPrefix\":\"j0.\",\"condition\":\"(\\\"countryIsoCode\\\" == \\\"j0.ISO2\\\")\",\"joinType\":\"LEFT\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"timestamp_parse(\\\"timestamp\\\",null,'UTC')\",\"outputType\":\"LONG\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"isRobot\",\"order\":\"ascending\"},{\"columnName\":\"j0.Capital\",\"order\":\"ascending\"},{\"columnName\":\"regionName\",\"order\":\"ascending\"}],\"columns\":[\"v0\",\"isRobot\",\"j0.Capital\",\"regionName\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"HOUR\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"v0\",\"type\":\"LONG\"},{\"name\":\"isRobot\",\"type\":\"STRING\"},{\"name\":\"j0.Capital\",\"type\":\"STRING\"},{\"name\":\"regionName\",\"type\":\"STRING\"}],\"columnMappings\":[{\"queryColumn\":\"v0\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"isRobot\",\"outputColumn\":\"isRobotAlias\"},{\"queryColumn\":\"j0.Capital\",\"outputColumn\":\"countryCapital\"},{\"queryColumn\":\"regionName\",\"outputColumn\":\"regionName\"}]}]"; testQuery( PLANNER_CONFIG_NATIVE_QUERY_EXPLAIN, @@ -924,7 +924,7 @@ public void testInsertWithClusteredBy() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0", "v1") + .columns("__time", "v0", "dim1", "v1") .virtualColumns( expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT), expressionVirtualColumn("v1", "ceil(\"m2\")", ColumnType.DOUBLE) @@ -965,7 +965,7 @@ public void testInsertPeriodFormGranularityWithClusteredBy() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0", "v1") + .columns("__time", "v0", "dim1", "v1") .virtualColumns( expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT), expressionVirtualColumn("v1", "ceil(\"m2\")", ColumnType.DOUBLE) @@ -1018,7 +1018,7 @@ public void testInsertWithPartitionedByAndClusteredBy() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0") + .columns("__time", "v0", "dim1") .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .orderBy( ImmutableList.of( @@ -1050,7 +1050,7 @@ public void testInsertWithPartitionedByAndLimitOffset() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - .columns("__time", "dim1", "v0") + .columns("__time", "v0", "dim1") .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .limit(10) .offset(20) @@ -1226,7 +1226,7 @@ public void testExplainPlanForInsertWithClusteredBy() throws JsonProcessingExcep .build(); final String explanation = - "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"floor(\\\"m1\\\")\",\"outputType\":\"FLOAT\"},{\"type\":\"expression\",\"name\":\"v1\",\"expression\":\"ceil(\\\"m2\\\")\",\"outputType\":\"DOUBLE\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"v1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"dim1\",\"v0\",\"v1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"FLOAT\",\"DOUBLE\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"v0\",\"type\":\"FLOAT\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"v1\",\"type\":\"DOUBLE\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"v0\",\"outputColumn\":\"floor_m1\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"v1\",\"outputColumn\":\"ceil_m2\"}]}]"; + "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"virtualColumns\":[{\"type\":\"expression\",\"name\":\"v0\",\"expression\":\"floor(\\\"m1\\\")\",\"outputType\":\"FLOAT\"},{\"type\":\"expression\",\"name\":\"v1\",\"expression\":\"ceil(\\\"m2\\\")\",\"outputType\":\"DOUBLE\"}],\"resultFormat\":\"compactedList\",\"orderBy\":[{\"columnName\":\"v0\",\"order\":\"ascending\"},{\"columnName\":\"dim1\",\"order\":\"ascending\"},{\"columnName\":\"v1\",\"order\":\"ascending\"}],\"columns\":[\"__time\",\"v0\",\"dim1\",\"v1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"\\\"DAY\\\"\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"FLOAT\",\"STRING\",\"DOUBLE\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"v0\",\"type\":\"FLOAT\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"v1\",\"type\":\"DOUBLE\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"v0\",\"outputColumn\":\"floor_m1\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"v1\",\"outputColumn\":\"ceil_m2\"}]}]"; final String resources = "[{\"name\":\"dst\",\"type\":\"DATASOURCE\"},{\"name\":\"foo\",\"type\":\"DATASOURCE\"}]"; final String attributes = "{\"statementType\":\"INSERT\",\"targetDataSource\":\"dst\",\"partitionedBy\":\"DAY\",\"clusteredBy\":[\"floor_m1\",\"dim1\",\"CEIL(\\\"m2\\\")\"]}"; diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java index c5caa3258ce9..b1934b57d7fb 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java @@ -326,7 +326,7 @@ public void testHttpFn2() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "timestamp_parse(\"timestamp\",null,'UTC')", ColumnType.LONG)) - .columns("isRobot", "v0") + .columns("v0", "isRobot") .build() ) .verify(); @@ -453,7 +453,7 @@ public void testHttpJson() newScanQueryBuilder() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("a", "b", "c", "d", "x", "y", "z") + .columns("x", "y", "z", "a", "b", "c", "d") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) From ac0f5eaabbbfe123210d5af470e951cf7f5c4e58 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 20:23:34 +0000 Subject: [PATCH 11/60] fix --- .../CalciteCatalogIngestionDmlTest.java | 44 ++++--------------- 1 file changed, 9 insertions(+), 35 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java index 3a60386dbc61..e26e312534cc 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java @@ -392,9 +392,7 @@ public void testInsertHourGrainPartitonedByFromCatalog() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(queryContextWithGranularity(Granularities.HOUR)) .build() ) @@ -419,9 +417,7 @@ public void testInsertHourGrainWithDayPartitonedByFromQuery() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(queryContextWithGranularity(Granularities.DAY)) .build() ) @@ -465,9 +461,7 @@ public void testInsertNoPartitonedByWithDayPartitonedByFromQuery() newScanQueryBuilder() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1") + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .context(queryContextWithGranularity(Granularities.DAY)) .build() ) @@ -526,9 +520,7 @@ public void testInsertAddNonDefinedColumnIntoNonSealedCatalogTable() expressionVirtualColumn("v2", "CAST(\"c\", 'DOUBLE')", ColumnType.DOUBLE), expressionVirtualColumn("v3", "CAST(\"d\", 'LONG')", ColumnType.LONG) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "e", "v0", "v1", "v2", "v3") + .columns("v0", "b", "v1", "v2", "v3", "e") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -588,9 +580,7 @@ public void testInsertTableWithClusteringWithClusteringFromCatalog() OrderBy.ascending("d") ) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "d", "v0", "v1") + .columns("v0", "b", "d", "v1") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -649,9 +639,7 @@ public void testInsertTableWithClusteringWithClusteringFromQuery() OrderBy.ascending("b") ) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "d", "v0", "v1") + .columns("v0", "b", "d", "v1") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -714,9 +702,7 @@ public void testInsertTableWithClusteringWithClusteringOnNewColumnFromQuery() OrderBy.ascending("e") ) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "d", "e", "v0", "v1") + .columns("v0", "b", "d", "e", "v1") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -911,8 +897,6 @@ public void testGroupByInsertAddNonDefinedColumnIntoNonSealedCatalogTable() expressionPostAgg("p0", "1", ColumnType.LONG), expressionPostAgg("p1", "CAST(\"d3\", 'DOUBLE')", ColumnType.DOUBLE) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. .setContext(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -997,9 +981,7 @@ public void testInsertAddNonDefinedColumnIntoSealedCatalogTableAndValidationDisa expressionVirtualColumn("v0", "timestamp_parse(\"a\",null,'UTC')", ColumnType.LONG), expressionVirtualColumn("v1", "1", ColumnType.LONG) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "c", "d", "v0", "v1") + .columns("v0", "b", "v1", "c", "d") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1063,9 +1045,7 @@ public void testInsertWithSourceIntoCatalogTable() expressionVirtualColumn("v2", "CAST(\"c\", 'DOUBLE')", ColumnType.DOUBLE), expressionVirtualColumn("v3", "CAST(\"d\", 'LONG')", ColumnType.LONG) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. - .columns("b", "e", "v0", "v1", "v2", "v3") + .columns("v0", "b", "v1", "v2", "v3", "e") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1158,8 +1138,6 @@ public void testGroupByInsertWithSourceIntoCatalogTable() expressionPostAgg("p0", "1", ColumnType.LONG), expressionPostAgg("p1", "CAST(\"d3\", 'DOUBLE')", ColumnType.DOUBLE) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. .setContext(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1226,8 +1204,6 @@ public void testInsertIntoExistingWithIncompatibleTypeAssignmentAndValidationDis .virtualColumns( expressionVirtualColumn("v0", "array(\"dim1\")", ColumnType.STRING_ARRAY) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. .columns("__time", "v0") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() @@ -1284,8 +1260,6 @@ public void testGroupByInsertIntoExistingWithIncompatibleTypeAssignmentAndValida .virtualColumns( expressionVirtualColumn("v0", "array(\"dim1\")", ColumnType.STRING_ARRAY) ) - // Scan query lists columns in alphabetical order independent of the - // SQL project list or the defined schema. .columns("__time", "v0") .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() From ad14eabd7df7b88f39de862c3d05e4745aea0651 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 20:26:07 +0000 Subject: [PATCH 12/60] update --- .../org/apache/druid/sql/calcite/CalciteExplainQueryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteExplainQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteExplainQueryTest.java index 7964bca842c9..946f597c477b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteExplainQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteExplainQueryTest.java @@ -144,7 +144,7 @@ public void testExplainSelectStar() { // Skip vectorization since otherwise the "context" will change for each subtest. skipVectorize(); - String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"cnt\",\"dim1\",\"dim2\",\"dim3\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; + String explanation = "[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"dim1\",\"dim2\",\"dim3\",\"cnt\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlQueryId\":\"dummy\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"LONG\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}]"; String sql = "EXPLAIN PLAN FOR SELECT * FROM druid.foo"; String resources = "[{\"name\":\"foo\",\"type\":\"DATASOURCE\"}]"; From e67ff798854b83d8e3a375bf8a3cb638afd956ab Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 20:28:57 +0000 Subject: [PATCH 13/60] column order changes --- .../testUnnestWithFilters@NullHandling=default.iq | 4 ++-- ...estUnnestWithFiltersInnerLimit@NullHandling=default.iq | 4 ++-- ...estWithFiltersInsideAndOutside@NullHandling=default.iq | 4 ++-- ...tersWithExpressionInInnerQuery@NullHandling=default.iq | 6 +++--- ...tersWithExpressionInInnerQuery@NullHandling=default.iq | 6 +++--- ...InlineDataSources@all_disabled@NullHandling=default.iq | 4 ++-- ...oInlineDataSources@all_enabled@NullHandling=default.iq | 4 ++-- ...OnTwoInlineDataSources@default@NullHandling=default.iq | 4 ++-- ...ilter-on-value-column_disabled@NullHandling=default.iq | 4 ++-- ...urces@filter-rewrites-disabled@NullHandling=default.iq | 4 ++-- ...ineDataSources@filter-rewrites@NullHandling=default.iq | 4 ++-- ...lineDataSources@join-to-filter@NullHandling=default.iq | 4 ++-- ...InnerJoinCastLeft@all_disabled@NullHandling=default.iq | 4 ++-- ...tInnerJoinCastLeft@all_enabled@NullHandling=default.iq | 4 ++-- .../testInnerJoinCastLeft@default@NullHandling=default.iq | 4 ++-- ...ilter-on-value-column_disabled@NullHandling=default.iq | 4 ++-- ...tLeft@filter-rewrites-disabled@NullHandling=default.iq | 4 ++-- ...erJoinCastLeft@filter-rewrites@NullHandling=default.iq | 4 ++-- ...nerJoinCastLeft@join-to-filter@NullHandling=default.iq | 4 ++-- ...hLeftDirectAccess@all_disabled@NullHandling=default.iq | 8 ++++---- ...thLeftDirectAccess@all_enabled@NullHandling=default.iq | 8 ++++---- ...e_withLeftDirectAccess@default@NullHandling=default.iq | 8 ++++---- ...ilter-on-value-column_disabled@NullHandling=default.iq | 8 ++++---- ...ccess@filter-rewrites-disabled@NullHandling=default.iq | 8 ++++---- ...ftDirectAccess@filter-rewrites@NullHandling=default.iq | 8 ++++---- ...eftDirectAccess@join-to-filter@NullHandling=default.iq | 8 ++++---- ...hLeftDirectAccess@all_disabled@NullHandling=default.iq | 8 ++++---- ...thLeftDirectAccess@all_enabled@NullHandling=default.iq | 8 ++++---- ...s_withLeftDirectAccess@default@NullHandling=default.iq | 8 ++++---- ...ilter-on-value-column_disabled@NullHandling=default.iq | 8 ++++---- ...ccess@filter-rewrites-disabled@NullHandling=default.iq | 8 ++++---- ...ftDirectAccess@filter-rewrites@NullHandling=default.iq | 8 ++++---- ...eftDirectAccess@join-to-filter@NullHandling=default.iq | 8 ++++---- ...ltersEmptyResults@all_disabled@NullHandling=default.iq | 2 +- ...iltersEmptyResults@all_enabled@NullHandling=default.iq | 2 +- ...anyFiltersEmptyResults@default@NullHandling=default.iq | 2 +- ...ilter-on-value-column_disabled@NullHandling=default.iq | 2 +- ...sults@filter-rewrites-disabled@NullHandling=default.iq | 2 +- ...rsEmptyResults@filter-rewrites@NullHandling=default.iq | 2 +- ...ersEmptyResults@join-to-filter@NullHandling=default.iq | 2 +- ...rsNonEmptyResults@all_disabled@NullHandling=default.iq | 2 +- ...ersNonEmptyResults@all_enabled@NullHandling=default.iq | 2 +- ...FiltersNonEmptyResults@default@NullHandling=default.iq | 2 +- ...ilter-on-value-column_disabled@NullHandling=default.iq | 2 +- ...sults@filter-rewrites-disabled@NullHandling=default.iq | 2 +- ...onEmptyResults@filter-rewrites@NullHandling=default.iq | 2 +- ...NonEmptyResults@join-to-filter@NullHandling=default.iq | 2 +- ...uterGroupByAndSubqueryHasLimit@NullHandling=default.iq | 4 ++-- ...hLeftDirectAccess@all_disabled@NullHandling=default.iq | 8 ++++---- ...thLeftDirectAccess@all_enabled@NullHandling=default.iq | 8 ++++---- ...e_withLeftDirectAccess@default@NullHandling=default.iq | 8 ++++---- ...ilter-on-value-column_disabled@NullHandling=default.iq | 8 ++++---- ...ccess@filter-rewrites-disabled@NullHandling=default.iq | 8 ++++---- ...ftDirectAccess@filter-rewrites@NullHandling=default.iq | 8 ++++---- ...eftDirectAccess@join-to-filter@NullHandling=default.iq | 8 ++++---- ...hLeftDirectAccess@all_disabled@NullHandling=default.iq | 8 ++++---- ...thLeftDirectAccess@all_enabled@NullHandling=default.iq | 8 ++++---- ...r_withLeftDirectAccess@default@NullHandling=default.iq | 8 ++++---- ...ilter-on-value-column_disabled@NullHandling=default.iq | 8 ++++---- ...ccess@filter-rewrites-disabled@NullHandling=default.iq | 8 ++++---- ...ftDirectAccess@filter-rewrites@NullHandling=default.iq | 8 ++++---- ...eftDirectAccess@join-to-filter@NullHandling=default.iq | 8 ++++---- ...hLeftDirectAccess@all_disabled@NullHandling=default.iq | 8 ++++---- ...thLeftDirectAccess@all_enabled@NullHandling=default.iq | 8 ++++---- ...s_withLeftDirectAccess@default@NullHandling=default.iq | 8 ++++---- ...ilter-on-value-column_disabled@NullHandling=default.iq | 8 ++++---- ...ccess@filter-rewrites-disabled@NullHandling=default.iq | 8 ++++---- ...ftDirectAccess@filter-rewrites@NullHandling=default.iq | 8 ++++---- ...eftDirectAccess@join-to-filter@NullHandling=default.iq | 8 ++++---- .../testGroupByWithLiteralInSubqueryGrouping.iq | 2 +- ...ngAndOtherAggregatorsUsingJoin@NullHandling=default.iq | 4 ++-- .../testTimeFilterOnSubquery@NullHandling=default.iq | 4 ++-- .../testWindowingWithScanAndSort@NullHandling=default.iq | 6 +++--- 73 files changed, 204 insertions(+), 204 deletions(-) diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFilters@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFilters@NullHandling=default.iq index 64963f6fc241..bc69ff5d3697 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFilters@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFilters@NullHandling=default.iq @@ -61,8 +61,8 @@ DruidProject(d3=[$18], druid=[logical]) "dimension" : "dim2", "value" : "a" }, - "columns" : [ "__time", "cnt", "d1", "d2", "dim1", "dim3", "dim4", "dim5", "dim6", "f1", "f2", "l1", "l2", "m1", "m2", "unique_dim1", "v0" ], - "columnTypes" : [ "LONG", "LONG", "DOUBLE", "DOUBLE", "STRING", "STRING", "STRING", "STRING", "STRING", "FLOAT", "FLOAT", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX", "STRING" ], + "columns" : [ "__time", "dim1", "v0", "dim3", "dim4", "dim5", "dim6", "d1", "d2", "f1", "f2", "l1", "l2", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "STRING", "STRING", "STRING", "DOUBLE", "DOUBLE", "FLOAT", "FLOAT", "LONG", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=default.iq index 0d98641f3893..cedfdd6fc78c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInnerLimit@NullHandling=default.iq @@ -64,8 +64,8 @@ DruidProject(d3=[$3], druid=[logical]) "dimension" : "dim2", "value" : "a" }, - "columns" : [ "__time", "dim3", "v0" ], - "columnTypes" : [ "LONG", "STRING", "STRING" ], + "columns" : [ "v0", "dim3", "__time" ], + "columnTypes" : [ "STRING", "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=default.iq index ca22c18ff45f..9c9ec8715470 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersInsideAndOutside@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(d3=[$18], druid=[logical]) } } ] }, - "columns" : [ "__time", "cnt", "d1", "d2", "dim1", "dim3", "dim4", "dim5", "dim6", "f1", "f2", "l1", "l2", "m1", "m2", "unique_dim1", "v0" ], - "columnTypes" : [ "LONG", "LONG", "DOUBLE", "DOUBLE", "STRING", "STRING", "STRING", "STRING", "STRING", "FLOAT", "FLOAT", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX", "STRING" ], + "columns" : [ "__time", "dim1", "v0", "dim3", "dim4", "dim5", "dim6", "d1", "d2", "f1", "f2", "l1", "l2", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "STRING", "STRING", "STRING", "DOUBLE", "DOUBLE", "FLOAT", "FLOAT", "LONG", "LONG", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=default.iq index 6ca74e443390..05790207aa95 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithFiltersWithExpressionInInnerQuery@NullHandling=default.iq @@ -61,7 +61,7 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "dimension" : "dim2", "value" : "a" }, - "columns" : [ "__time", "dim3", "v0" ], + "columns" : [ "v0", "dim3", "__time" ], "columnTypes" : [ "LONG", "STRING", "LONG" ], "granularity" : { "type" : "all" @@ -82,8 +82,8 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.unnest", "v0" ], - "columnTypes" : [ "STRING", "LONG" ], + "columns" : [ "v0", "j0.unnest" ], + "columnTypes" : [ "LONG", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=default.iq index 6c203130987d..9b9802c0645b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteArraysQueryTest/testUnnestWithInFiltersWithExpressionInInnerQuery@NullHandling=default.iq @@ -61,7 +61,7 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "dimension" : "dim2", "values" : [ "a", "b" ] }, - "columns" : [ "__time", "dim3", "v0" ], + "columns" : [ "v0", "dim3", "__time" ], "columnTypes" : [ "LONG", "STRING", "LONG" ], "granularity" : { "type" : "all" @@ -82,8 +82,8 @@ DruidProject(t=[$0], d3=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.unnest", "v0" ], - "columnTypes" : [ "STRING", "LONG" ], + "columns" : [ "v0", "j0.unnest" ], + "columnTypes" : [ "LONG", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=default.iq index 794195713eda..699b9c230520 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_disabled@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=default.iq index 37a87f4a74c2..559eadb36320 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@all_enabled@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=default.iq index dbc1d7eaf96c..b6c55a471df1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@default@NullHandling=default.iq @@ -78,8 +78,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=default.iq index fe58d1e4ebe4..fd3f5b44f810 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-on-value-column_disabled@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=default.iq index 57accf2fbc31..05bc33e20708 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites-disabled@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=default.iq index 072fac7ae752..f554299bc8be 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@filter-rewrites@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=default.iq index b3b0e2a346cb..ede90bee602d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources@join-to-filter@NullHandling=default.iq @@ -81,8 +81,8 @@ DruidAggregate(group=[{0}], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=default.iq index b834b63636ab..c178c13cddb0 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_disabled@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=default.iq index b898d2f1c0d4..11b8ada4085b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@all_enabled@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=default.iq index 41c9b0393aa3..6ef633d9977b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@default@NullHandling=default.iq @@ -77,8 +77,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=default.iq index 3b58962a1420..6b97e9055c78 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-on-value-column_disabled@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=default.iq index 0c6f38cfafb6..f5b22aebce95 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites-disabled@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=default.iq index 8783d7b3734c..e0c05e781941 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@filter-rewrites@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=default.iq index 517a5e8f1480..e2f29d5f6320 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinCastLeft@join-to-filter@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidProject(m1=[$0], k=[$2], v=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.k", "j0.v", "m1" ], - "columnTypes" : [ "STRING", "STRING", "FLOAT" ], + "columns" : [ "m1", "j0.k", "j0.v" ], + "columnTypes" : [ "FLOAT", "STRING", "STRING" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq index e0132c50e97f..6a7c709365b9 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq index b7fe7b9911f4..4829e9398151 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq index a1a9eb3a74ed..587178dde591 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq @@ -71,8 +71,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -120,8 +120,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq index e499257505ee..d33427702e8b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq index 2ed19caa6dd5..3a5f56259901 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq index 7ba1e5e14d7a..5cfae3e4b94a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq index 609ae044013b..758f4c48bf4d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq index 20e69c705a24..24f52e8a1c0d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq index 9d96525fbeaf..8151cc91a3ae 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq index 1c782f5f3945..87d1ef730e79 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq @@ -71,8 +71,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -120,8 +120,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq index e2d47b9b8158..2c622d5977fc 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq index db70d749d5b7..d5d73892fc1a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq index d17043dbd492..3efe170e8085 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq index eebc5217765f..1bd6a87b9a07 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=default.iq index 910efe624297..aa37bd300eff 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_disabled@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=default.iq index 541186def463..f157cad2924f 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@all_enabled@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=default.iq index 2b24b70d779a..ba86267509c3 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@default@NullHandling=default.iq @@ -262,7 +262,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq index a1554d1216ee..76bfe6dcd33b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=default.iq index 875f6397d109..03b29f1cd24a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites-disabled@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=default.iq index 2c24f9fd43a6..5d5cdf00e572 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@filter-rewrites@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=default.iq index 95f337e744d6..206049e87fe0 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults@join-to-filter@NullHandling=default.iq @@ -265,7 +265,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=default.iq index 27c694d37619..8190d2d01e32 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_disabled@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=default.iq index f178bb779134..f465747dcb1c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@all_enabled@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=default.iq index 8bcef0971a31..9a6d6b99c771 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@default@NullHandling=default.iq @@ -263,7 +263,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq index c9ec614dd6c0..4b34d9f112bf 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-on-value-column_disabled@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=default.iq index 244271ad3f5f..69a3f68d7a40 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites-disabled@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=default.iq index 5e79404a0b5f..a917edeea1b9 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@filter-rewrites@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=default.iq index b905026fcc5c..5d596d102bd6 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testInnerJoinWithFilterPushdownAndManyFiltersNonEmptyResults@join-to-filter@NullHandling=default.iq @@ -266,7 +266,7 @@ DruidProject(m1=[$2], m10=[$3], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "j0.m1", "m1" ], + "columns" : [ "m1", "j0.m1" ], "columnTypes" : [ "FLOAT", "FLOAT" ], "granularity" : { "type" : "all" diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=default.iq index b96238832d5e..0cd12b64c22e 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testJoinOuterGroupByAndSubqueryHasLimit@NullHandling=default.iq @@ -80,8 +80,8 @@ DruidAggregate(group=[{0}], EXPR$1=[AVG($2)], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 10, - "columns" : [ "dim2", "j0.m1", "m1", "m2" ], - "columnTypes" : [ "STRING", "FLOAT", "FLOAT", "DOUBLE" ], + "columns" : [ "dim2", "m1", "m2", "j0.m1" ], + "columnTypes" : [ "STRING", "FLOAT", "DOUBLE", "FLOAT" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq index 5df8aeeaff31..2f4290fed6de 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq index 76955adfbeb9..27d860eb9f04 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@all_enabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq index 4d2b6332c5b4..845d81b6a3fc 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@default@NullHandling=default.iq @@ -71,8 +71,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -120,8 +120,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq index 05a49528a40e..8f7728670181 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq index 61e0354cd15b..eaf39cc2e5a8 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq index 2103374735da..fe73169674d1 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq index b86beedd9ab7..0e75a816828a 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAccess@join-to-filter@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=default.iq index bfdea514aa3e..9856d6880d74 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=default.iq index dd9ac1e021d9..dd18a691b267 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@all_enabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=default.iq index 10f1c84c330e..dd0fe8341b5d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@default@NullHandling=default.iq @@ -71,8 +71,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -126,8 +126,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq index ea5fdff6a88f..22719f86aea2 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq index d870dc637b84..de427c4ece07 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq index 560f7c30f74d..7973786f10ec 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=default.iq index ff2df59c5139..c1b280b3803c 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAccess@join-to-filter@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -129,8 +129,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq index d13c86ab3957..9149b1cebb62 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq index aec23daced0a..ba5ed17c9e7e 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@all_enabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq index 4c84575901ee..fd632f528467 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@default@NullHandling=default.iq @@ -71,8 +71,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -120,8 +120,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq index c22c33b3ea47..eb287c5eeedd 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-on-value-column_disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq index aa6d4b632acd..e36e08bdf07d 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites-disabled@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq index 993c14f6869a..6d586cb7eebd 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@filter-rewrites@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq index cf7cdcc09f3e..e108a87115d4 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteJoinQueryTest/testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess@join-to-filter@NullHandling=default.iq @@ -74,8 +74,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "dimension" : "dim1", "value" : "10.1" }, - "columns" : [ "__time", "v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, @@ -123,8 +123,8 @@ DruidProject(dim1=[CAST('10.1':VARCHAR):VARCHAR], __time=[$1], druid=[logical]) "outputType" : "STRING" } ], "resultFormat" : "compactedList", - "columns" : [ "__time", "_v0" ], - "columnTypes" : [ "LONG", "STRING" ], + "columns" : [ "_v0", "__time" ], + "columnTypes" : [ "STRING", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testGroupByWithLiteralInSubqueryGrouping.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testGroupByWithLiteralInSubqueryGrouping.iq index 85c1b392c49a..b5d2c682643b 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testGroupByWithLiteralInSubqueryGrouping.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testGroupByWithLiteralInSubqueryGrouping.iq @@ -30,8 +30,8 @@ SELECT +-------+----+ | t1 | t2 | +-------+----+ -| dummy | b | | dummy | | +| dummy | b | +-------+----+ (2 rows) diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=default.iq index 8bc6869aff89..2fe7189d611e 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJoin@NullHandling=default.iq @@ -221,8 +221,8 @@ DruidProject(dim2=[$0], EXPR$1=[$1], EXPR$2=[$3], EXPR$3=[$5], druid=[logical]) "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "_j0.a0", "a0", "d0", "j0.a0" ], - "columnTypes" : [ "LONG", "LONG", "STRING", "LONG" ], + "columns" : [ "d0", "a0", "j0.a0", "_j0.a0" ], + "columnTypes" : [ "STRING", "LONG", "LONG", "LONG" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=default.iq index 9f63bc9a2222..c864ecb8df14 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testTimeFilterOnSubquery@NullHandling=default.iq @@ -47,8 +47,8 @@ DruidProject(__time=[$0], m1=[$5], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 100, - "columns" : [ "__time", "cnt", "dim1", "dim2", "dim3", "m1", "m2", "unique_dim1" ], - "columnTypes" : [ "LONG", "LONG", "STRING", "STRING", "STRING", "FLOAT", "DOUBLE", "COMPLEX" ], + "columns" : [ "__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1" ], + "columnTypes" : [ "LONG", "STRING", "STRING", "STRING", "LONG", "FLOAT", "DOUBLE", "COMPLEX" ], "granularity" : { "type" : "all" }, diff --git a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=default.iq b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=default.iq index 17ca58cf2a2f..a893185365e6 100644 --- a/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=default.iq +++ b/sql/src/test/quidem/org.apache.druid.sql.calcite.DecoupledPlanningCalciteQueryTest/testWindowingWithScanAndSort@NullHandling=default.iq @@ -137,8 +137,8 @@ DruidProject(ranking=[$2], trend_score=[$1], druid=[logical]) }, "resultFormat" : "compactedList", "limit" : 10, - "columns" : [ "a0", "d1", "w0" ], - "columnTypes" : [ "LONG", "DOUBLE", "LONG" ], + "columns" : [ "d1", "a0", "w0" ], + "columnTypes" : [ "DOUBLE", "LONG", "LONG" ], "granularity" : { "type" : "all" }, @@ -179,7 +179,7 @@ DruidProject(ranking=[$2], trend_score=[$1], druid=[logical]) "offset" : 0, "limit" : 9223372036854775807 }, - "projectedColumns" : [ "a0", "w0" ], + "projectedColumns" : [ "w0", "a0" ], "virtualColumns" : null, "ordering" : null } ], From 387f0e7b1fe35dc0516f4e0b80069cba885dfc5f Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Wed, 6 Nov 2024 21:27:48 +0000 Subject: [PATCH 14/60] order in join.iq --- .../test/quidem/org.apache.druid.quidem.SqlQuidemTest/join.iq | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/join.iq b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/join.iq index 05f67289ab5f..e8318d5ec1dc 100644 --- a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/join.iq +++ b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/join.iq @@ -100,8 +100,8 @@ select v.*,e.* from v inner join e on (e.cityName = v.cityName); "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] }, "resultFormat" : "compactedList", - "columns" : [ "a0", "d0", "j0.a0", "j0.d0" ], - "columnTypes" : [ "LONG", "STRING", "LONG", "STRING" ], + "columns" : [ "d0", "a0", "j0.d0", "j0.a0" ], + "columnTypes" : [ "STRING", "LONG", "STRING", "LONG" ], "granularity" : { "type" : "all" }, From 35c377216482d6c055fe9c0d0ef82f70d093c5ca Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 09:16:51 +0000 Subject: [PATCH 15/60] fix test --- .../apache/druid/query/scan/ScanQueryLimitRowIteratorTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryLimitRowIteratorTest.java b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryLimitRowIteratorTest.java index e187ddfd630a..c4dccff2b3c8 100644 --- a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryLimitRowIteratorTest.java +++ b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryLimitRowIteratorTest.java @@ -27,6 +27,7 @@ import org.apache.druid.query.QueryPlus; import org.apache.druid.query.QueryRunnerTestHelper; import org.apache.druid.query.context.ResponseContext; +import org.apache.druid.testing.InitializedNullHandlingTest; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -39,7 +40,7 @@ import java.util.concurrent.ThreadLocalRandom; @RunWith(Parameterized.class) -public class ScanQueryLimitRowIteratorTest +public class ScanQueryLimitRowIteratorTest extends InitializedNullHandlingTest { private static final int NUM_ELEMENTS = 1000; private final int batchSize; From 2711a4fa788621c3de1fe0605400ffdf1c25526e Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 09:51:25 +0000 Subject: [PATCH 16/60] update test --- .../sql/DoublesSketchSqlAggregatorTest.java | 2 +- .../apache/druid/msq/exec/MSQWindowTest.java | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java index a85d508a8791..ee4a01c3704f 100644 --- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java +++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java @@ -398,7 +398,7 @@ public void testSubqueryWithNestedGroupBy() new ExpressionVirtualColumn("v0", "946684800000", ColumnType.LONG, TestExprMacroTable.INSTANCE), new ExpressionVirtualColumn("v1", "case_searched((\"j0.a0\" < \"_a0\"),'val2',((\"j0.a0\" >= \"_a0\") && (\"j0.a0\" < \"_a1\")),'val3',(\"j0.a0\" >= \"_a1\"),'val1',null)", ColumnType.STRING, TestExprMacroTable.INSTANCE) ) - .columns("j0.a0", "j0.d0", "v0", "v1") + .columns("v0", "j0.d0", "j0.a0", "v1") .build() ), expectedResults diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java index aa258859b501..e49350d4c404 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java @@ -987,7 +987,7 @@ public void testWindowOnFooWithPartitionByOrderBYWithJoin() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"j0.m2\",\"type\":\"DOUBLE\"},{\"name\":\"m1\",\"type\":\"FLOAT\"}]" + "[{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"j0.m2\",\"type\":\"DOUBLE\"}]" ) .build(); @@ -1037,7 +1037,7 @@ public void testWindowOnFooWithPartitionByOrderBYWithJoin() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.m2", "m1") + .columns("m1", "j0.m2") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1090,7 +1090,7 @@ public void testWindowOnFooWithEmptyOverWithJoin() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"j0.m2\",\"type\":\"DOUBLE\"},{\"name\":\"m1\",\"type\":\"FLOAT\"}]" + "[{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"j0.m2\",\"type\":\"DOUBLE\"}]" ) .build(); @@ -1140,7 +1140,7 @@ public void testWindowOnFooWithEmptyOverWithJoin() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.m2", "m1") + .columns("m1", "j0.m2") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1269,7 +1269,7 @@ public void testWindowOnFooWithEmptyOverWithUnnest() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"j0.unnest\",\"type\":\"STRING\"},{\"name\":\"m1\",\"type\":\"FLOAT\"}]" + "[{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"j0.unnest\",\"type\":\"STRING\"}]" ) .build(); @@ -1297,7 +1297,7 @@ public void testWindowOnFooWithEmptyOverWithUnnest() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.unnest", "m1") + .columns("m1", "j0.unnest") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1351,7 +1351,7 @@ public void testWindowOnFooWithPartitionByAndWithUnnest() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"j0.unnest\",\"type\":\"STRING\"},{\"name\":\"m1\",\"type\":\"FLOAT\"}]" + "[{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"j0.unnest\",\"type\":\"STRING\"}]" ) .build(); @@ -1379,7 +1379,7 @@ public void testWindowOnFooWithPartitionByAndWithUnnest() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("j0.unnest", "m1") + .columns("m1", "j0.unnest") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1740,7 +1740,7 @@ public void testSelectWithWikipedia() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"added\",\"type\":\"LONG\"},{\"name\":\"cityName\",\"type\":\"STRING\"}]" + "[{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"added\",\"type\":\"LONG\"}]" ) .build(); @@ -1750,7 +1750,7 @@ public void testSelectWithWikipedia() .dataSource(CalciteTests.WIKIPEDIA) .intervals(querySegmentSpec(Filtration.eternity())) .filters(in("cityName", ImmutableList.of("Ahmedabad", "Albuquerque"))) - .columns("added", "cityName") + .columns("cityName", "added") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1829,7 +1829,7 @@ public void testSelectWithWikipediaWithPartitionKeyNotInSelect() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"added\",\"type\":\"LONG\"},{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"countryIsoCode\",\"type\":\"STRING\"}]" + "[{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"countryIsoCode\",\"type\":\"STRING\"},{\"name\":\"added\",\"type\":\"LONG\"}]" ) .build(); @@ -1839,7 +1839,7 @@ public void testSelectWithWikipediaWithPartitionKeyNotInSelect() .dataSource(CalciteTests.WIKIPEDIA) .intervals(querySegmentSpec(Filtration.eternity())) .filters(notNull("cityName")) - .columns("added", "cityName", "countryIsoCode") + .columns("cityName", "countryIsoCode", "added") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(innerContextWithRowSignature) .build()), @@ -1861,13 +1861,13 @@ public void testSelectWithWikipediaWithPartitionKeyNotInSelect() .putAll(DEFAULT_MSQ_CONTEXT) .put( DruidQuery.CTX_SCAN_SIGNATURE, - "[{\"name\":\"added\",\"type\":\"LONG\"},{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"w0\",\"type\":\"LONG\"}]" + "[{\"name\":\"cityName\",\"type\":\"STRING\"},{\"name\":\"added\",\"type\":\"LONG\"},{\"name\":\"w0\",\"type\":\"LONG\"}]" ) .build(); final Query scanQuery = Druids.newScanQueryBuilder() .dataSource(new QueryDataSource(query)) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("added", "cityName", "w0") + .columns("cityName", "added", "w0") .limit(5) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(outerContextWithRowSignature) From fd70ad9fe5ef4f2986fdddf7c7189ea634007f5d Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 10:07:11 +0000 Subject: [PATCH 17/60] fix things in scanquery --- .../org/apache/druid/msq/exec/MSQSelectTest.java | 2 +- .../java/org/apache/druid/query/scan/ScanQuery.java | 9 +++++++-- .../org/apache/druid/query/scan/ScanQueryTest.java | 12 ++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java index 91a1983bfd68..1c6c08305af7 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java @@ -254,7 +254,7 @@ public void testSelectOnFoo2(String contextName, Map context) .query(newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE2) .intervals(querySegmentSpec(Filtration.eternity())) - .columns("dim2", "m1") + .columns("m1", "dim2") .context(defaultScanQueryContext( context, RowSignature.builder() diff --git a/processing/src/main/java/org/apache/druid/query/scan/ScanQuery.java b/processing/src/main/java/org/apache/druid/query/scan/ScanQuery.java index be3d4fa2d5ea..57f3a8772fc4 100644 --- a/processing/src/main/java/org/apache/druid/query/scan/ScanQuery.java +++ b/processing/src/main/java/org/apache/druid/query/scan/ScanQuery.java @@ -463,7 +463,9 @@ public boolean equals(Object o) Objects.equals(resultFormat, scanQuery.resultFormat) && Objects.equals(dimFilter, scanQuery.dimFilter) && Objects.equals(columns, scanQuery.columns) && - Objects.equals(orderBys, scanQuery.orderBys); + Objects.equals(columnTypes, scanQuery.columnTypes) && + Objects.equals(orderBys, scanQuery.orderBys) && + Objects.equals(timeOrder, scanQuery.timeOrder); } @Override @@ -478,7 +480,9 @@ public int hashCode() scanRowsLimit, dimFilter, columns, - orderBys + columnTypes, + orderBys, + timeOrder ); } @@ -495,6 +499,7 @@ public String toString() ", limit=" + scanRowsLimit + ", dimFilter=" + dimFilter + ", columns=" + columns + + ", columnTypes=" + columnTypes + (orderBys.isEmpty() ? "" : ", orderBy=" + orderBys) + ", context=" + getContext() + '}'; diff --git a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java index f5a784b3841e..aa1d0667371a 100644 --- a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java +++ b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java @@ -23,6 +23,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import nl.jqno.equalsverifier.EqualsVerifier; +import nl.jqno.equalsverifier.Warning; import org.apache.druid.java.util.common.DateTimes; import org.apache.druid.java.util.common.ISE; import org.apache.druid.java.util.common.guava.Sequence; @@ -449,4 +451,14 @@ public void testAsCursorBuildSpec() Assert.assertNull(buildSpec.getAggregators()); Assert.assertEquals(virtualColumns, buildSpec.getVirtualColumns()); } + + @Test + public void testEquals() + { + EqualsVerifier.forClass(ScanQuery.class) + .suppress(Warning.NULL_FIELDS, Warning.NONFINAL_FIELDS) + .withIgnoredFields("maxRowsQueuedForOrdering", "maxSegmentPartitionsOrderedInMemory") + .usingGetClass() + .verify(); + } } From fa16e512ac04bb4ab6cee5def5ae2a00b14d9422 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 10:36:41 +0000 Subject: [PATCH 18/60] add crap and fix calcitequerytest --- .../druid/sql/calcite/CalciteQueryTest.java | 61 ++++++++++++++++++- .../druid/sql/calcite/QueryTestRunner.java | 36 +++++++++-- 2 files changed, 90 insertions(+), 7 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java index d6db17d85781..18a759ed2e77 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java @@ -625,6 +625,7 @@ public void testDiv() expressionVirtualColumn("v1", "div((\"cnt\" + 2),(\"cnt\" + 1))", ColumnType.LONG) ) .columns(ImmutableList.of("cnt", "m1", "v0", "v1")) + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.LONG, ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1354,6 +1355,7 @@ public void testStringLatestGroupByWithAlwaysFalseCondition() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1378,6 +1380,7 @@ public void testStringLatestByGroupByWithAlwaysFalseCondition() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -2530,6 +2533,7 @@ public void testDECODE_BASE64_UTF8() ) .limit(1) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -3347,6 +3351,7 @@ public void testDecomposeCaseWhenThreeArg() ) ) .columns("dim1", "dim2", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -3380,6 +3385,7 @@ public void testDecomposeCaseWhenTwoArg() ) ) .columns("v0", "v1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -3816,6 +3822,7 @@ public void testLongPredicateIsNull() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.LONG) .virtualColumns( expressionVirtualColumn( "v0", @@ -3972,6 +3979,7 @@ public void testNullStringEquality() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -4181,6 +4189,7 @@ public void testGroupingWithNullInFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -4225,6 +4234,7 @@ public void testGroupingWithNotNullPlusNonNullInFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -4249,6 +4259,7 @@ public void testGroupByNothingWithLiterallyFalseFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1") + .columnTypes(ColumnType.LONG, ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -4321,6 +4332,7 @@ public void testGroupByOneColumnWithLiterallyFalseFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1") + .columnTypes(ColumnType.LONG, ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6389,6 +6401,7 @@ public void testCountStarWithNotOfDegenerateFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6814,6 +6827,7 @@ public void testTimeInIntervalBooleanNullable() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(new ExpressionVirtualColumn("v0", ExprEval.of(1L).toExpr(), ColumnType.LONG)) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_LOS_ANGELES) .build() @@ -7776,6 +7790,7 @@ public void testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJo .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("d0", "a0", "j0.a0", "_j0.a0")) + .columnTypes(ColumnType.STRING, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .build() ), NullHandling.sqlCompatible() @@ -7807,6 +7822,7 @@ public void testTimeFilterOnSubquery() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "m1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(100) .context(QUERY_CONTEXT_DEFAULT) @@ -7832,6 +7848,7 @@ public void testTimeFilterOnSubquery() ) )) .columns("__time", "m1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12669,6 +12686,7 @@ public void testConcat() ColumnType.STRING )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12700,6 +12718,7 @@ public void testConcat2() ColumnType.STRING )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12806,6 +12825,7 @@ public void testConcatDecomposeAlwaysFalseOrUnknown() equality("dim2", "4", ColumnType.STRING) )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12856,6 +12876,7 @@ public void testConcatDecomposeAlwaysFalseOrUnknownNegated() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12897,6 +12918,7 @@ public void testConcatDecomposeIsNull() )) .filters(or(isNull("dim1"), isNull("dim2"))) .columns("dim1", "dim2", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12943,6 +12965,7 @@ public void testConcatDoubleBarsDecompose() and(equality("dim1", "3", ColumnType.STRING), equality("dim2", "4", ColumnType.STRING)) )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12964,6 +12987,7 @@ public void testTextcat() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat(\"dim1\",\"dim1\")", ColumnType.STRING)) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -12977,7 +13001,11 @@ public void testTextcat() new Object[]{"abcabc"} ) ); + } + @Test + public void testTextcat2() + { testQuery( "SELECT textcat(dim1, CAST(m2 as VARCHAR)) as dimX FROM foo", ImmutableList.of( @@ -12990,6 +13018,7 @@ public void testTextcat() ColumnType.STRING )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -13169,6 +13198,7 @@ public void testRequireTimeConditionLogicalValuePositive() RowSignature.builder().add("a", ColumnType.LONG).build() )) .columns("a") + .columnTypes(ColumnType.LONG) .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -13248,6 +13278,7 @@ public void testFilterFloatDimension() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .filters(equality("f1", 0.1, ColumnType.DOUBLE)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -13270,6 +13301,7 @@ public void testFilterDoubleDimension() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .filters(equality("d1", 1.7, ColumnType.DOUBLE)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -13292,6 +13324,7 @@ public void testFilterLongDimension() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .filters(equality("l1", 7L, ColumnType.LONG)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -13367,6 +13400,7 @@ public void testRadiansAndDegrees() expressionVirtualColumn("v0", "(toRadians((\"m1\" * 15)) / toDegrees(\"m2\"))", ColumnType.DOUBLE) ) .columns("v0") + .columnTypes(ColumnType.DOUBLE) .filters(equality("dim1", "1", ColumnType.STRING)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -13417,6 +13451,7 @@ public void testTimestampDiff() expressionVirtualColumn("v8", "div(div((\"__time\" - 907200000000),1000),604800)", ColumnType.LONG) ) .columns("v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8") + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -13447,6 +13482,7 @@ public void testTimestampCeil() expressionVirtualColumn("v1", "946771200000", ColumnType.LONG) ) .columns("v0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.LONG) .limit(1) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -13768,6 +13804,7 @@ public void testTimeStampAddZeroDayPeriod() expressionVirtualColumn("v0", "(\"__time\" + 0)", ColumnType.LONG) ) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -13797,6 +13834,7 @@ public void testTimeStampAddZeroMonthPeriod() ) ) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -13826,6 +13864,7 @@ public void testTimeStampAddZeroYearPeriod() ) ) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -13864,6 +13903,7 @@ public void testTimeStampAddConversion() ) ) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -13892,6 +13932,7 @@ public void testTimeStampAddConversion() ) ) .columns("v0") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -14055,6 +14096,7 @@ public void testRoundFunc() expressionVirtualColumn("v0", "round(\"f1\")", ColumnType.FLOAT) ) .columns("f1", "v0") + .columnTypes(ColumnType.FLOAT, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -14915,6 +14957,7 @@ public void testHumanReadableFormatFunction() expressionVirtualColumn("v7", "human_readable_decimal_format(\"l1\")", ColumnType.STRING) ) .columns("m1", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .filters(equality("dim1", "1", ColumnType.STRING)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) @@ -15134,6 +15177,7 @@ public void testPlanWithInFilterLessThanInSubQueryThreshold() Druids.newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE3) .columns("l1") + .columnTypes(ColumnType.LONG) .intervals(querySegmentSpec(Filtration.eternity())) .context(QUERY_CONTEXT_DEFAULT) .filters( @@ -15377,6 +15421,7 @@ public void testComplexDecode() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.ofComplex("hyperUnique")) .virtualColumns( expressionVirtualColumn( "v0", @@ -15503,6 +15548,7 @@ public void testOrderByAlongWithInternalScanQuery() "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .limit(1) .columns(ImmutableList.of("__time", "m1")) + .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .order(Order.ASCENDING) .build() ), @@ -15545,6 +15591,7 @@ public void testOrderByAlongWithInternalScanQueryNoDistinct() "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .limit(1) .columns(ImmutableList.of("__time", "m1")) + .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .order(Order.DESCENDING) .build() ), @@ -15567,6 +15614,7 @@ public void testFilterWithNVLAndNotIn() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .columns(ImmutableList.of("__time", "dim1")) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() ), @@ -15593,6 +15641,7 @@ public void testFilterWithNVLAndInIsNotTrue() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .columns(ImmutableList.of("__time", "dim1")) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() ), @@ -15619,6 +15668,7 @@ public void testFilterWithNvlishCaseAndNotIn() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .columns(ImmutableList.of("__time", "dim1")) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() ), @@ -15645,6 +15695,7 @@ public void testFilterWithNvlishCase2AndNotIn() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .columns(ImmutableList.of("__time", "dim1")) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() ), @@ -16053,6 +16104,7 @@ public void testWindowingWithScanAndSort() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("w0", "a0") + .columnTypes(ColumnType.LONG, ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(10) @@ -16225,9 +16277,8 @@ public void testCastCharToVarcharInFlattenConcat() ) .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) - .columns(ImmutableList.of( - "EXPR$0" - )) + .columns("EXPR$0") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -16307,6 +16358,7 @@ public void testIpv4ParseWithNullableType() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -16321,6 +16373,7 @@ public void testIpv4ParseWithNullableType() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.LONG) .virtualColumns(expressionVirtualColumn("v0", "0", ColumnType.LONG)) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -16345,6 +16398,7 @@ public void testIpv4ParseWithBigintOutput() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.LONG) .virtualColumns(expressionVirtualColumn("v0", "3232235521", ColumnType.LONG)) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -16455,6 +16509,7 @@ public void testStringOperationsNullableInference() ) ) .columns("v0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(isNull("dim3")) .limit(1) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 1d1593e96edb..0392ac6ee2db 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -21,6 +21,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; @@ -35,7 +36,9 @@ import org.apache.druid.java.util.common.guava.Sequence; import org.apache.druid.query.Query; import org.apache.druid.query.QueryContexts; +import org.apache.druid.query.scan.ScanQuery; import org.apache.druid.quidem.DruidQTestInfo; +import org.apache.druid.segment.column.ColumnType; import org.apache.druid.segment.column.RowSignature; import org.apache.druid.server.security.ResourceAction; import org.apache.druid.sql.DirectStatement; @@ -63,6 +66,8 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import static org.junit.Assert.fail; + /** * Runs a test built up by {@link QueryTestBuilder}. Running a SQL query test * is somewhat complex; with different modes and items to verify. To manage the @@ -443,19 +448,42 @@ private void verifyQuery(QueryResults queryResults) recordedQueries.size() ); for (int i = 0; i < expectedQueries.size(); i++) { + Query expectedQuery = expectedQueries.get(i); + Query actualQuery = recordedQueries.get(i); + if (expectedQuery instanceof ScanQuery && actualQuery instanceof ScanQuery) { + ScanQuery scanQuery2 = (ScanQuery) actualQuery; + ScanQuery scanQuery = (ScanQuery) expectedQuery; + if (!Objects.equal(scanQuery.getColumnTypes(), scanQuery2.getColumnTypes())) { + StringBuffer sv=new StringBuffer(); + sv.append( ".columnTypes(" + ); + for (ColumnType query : scanQuery2.getColumnTypes()) { + sv.append("ColumnType."+query+", "); + } + int l = sv.length(); + sv.replace(l-2, l, ")"); + System.out.println("\n"); + System.out.println(sv.toString()); + fail(sv.toString() + + ); + + } + } + Assert.assertEquals( StringUtils.format("query #%d: %s", i + 1, builder.sql), - expectedQueries.get(i), - recordedQueries.get(i) + expectedQuery, + actualQuery ); try { // go through some JSON serde and back, round tripping both queries and comparing them to each other, because // Assert.assertEquals(recordedQueries.get(i), stringAndBack) is a failure due to a sorted map being present // in the recorded queries, but it is a regular map after deserialization - final String recordedString = queryJsonMapper.writeValueAsString(recordedQueries.get(i)); + final String recordedString = queryJsonMapper.writeValueAsString(actualQuery); final Query stringAndBack = queryJsonMapper.readValue(recordedString, Query.class); - final String expectedString = queryJsonMapper.writeValueAsString(expectedQueries.get(i)); + final String expectedString = queryJsonMapper.writeValueAsString(expectedQuery); final Query expectedStringAndBack = queryJsonMapper.readValue(expectedString, Query.class); Assert.assertEquals(expectedStringAndBack, stringAndBack); } From 043470d7e14cd2134ad916f058f4f4ccf9397a91 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 11:14:30 +0000 Subject: [PATCH 19/60] fix joinquerytest --- .../java/org/apache/druid/query/Druids.java | 1 + .../sql/calcite/CalciteJoinQueryTest.java | 126 +++++++++++++++++- .../druid/sql/calcite/QueryTestRunner.java | 20 +-- 3 files changed, 134 insertions(+), 13 deletions(-) diff --git a/processing/src/main/java/org/apache/druid/query/Druids.java b/processing/src/main/java/org/apache/druid/query/Druids.java index aad70c9ecb5d..523998122a82 100644 --- a/processing/src/main/java/org/apache/druid/query/Druids.java +++ b/processing/src/main/java/org/apache/druid/query/Druids.java @@ -830,6 +830,7 @@ public static class ScanQueryBuilder public ScanQuery build() { +// assertNotNull(columnTypes); return new ScanQuery( dataSource, querySegmentSpec, diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java index a4fea481954b..95a1b2102dc9 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java @@ -167,6 +167,7 @@ public void testInnerJoinWithLimitAndAlias() ) ) .columns("_d0") + .columnTypes(ColumnType.LONG) .context(context) .build() ), @@ -254,6 +255,7 @@ public void testJoinOuterGroupByAndSubqueryHasLimit() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("m1")) + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -269,6 +271,7 @@ public void testJoinOuterGroupByAndSubqueryHasLimit() .intervals(querySegmentSpec(Filtration.eternity())) .limit(10) .columns("dim2", "m2") + .columnTypes(ColumnType.STRING, ColumnType.DOUBLE) .context(QUERY_CONTEXT_DEFAULT) .build() ) @@ -342,6 +345,7 @@ public void testJoinOuterGroupByAndSubqueryNoLimit(Map queryCont .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("m1")) + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -421,6 +425,7 @@ public void testJoinWithLimitBeforeJoining() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "m1", "m2") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT, ColumnType.DOUBLE) .context(QUERY_CONTEXT_DEFAULT) .limit(10) .build() @@ -429,7 +434,8 @@ public void testJoinWithLimitBeforeJoining() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("m1")) + .columns("m1") + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -790,6 +796,7 @@ public void testFilterAndGroupByLookupUsingJoinOperatorBackwards(Map queryCo ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -1111,6 +1120,7 @@ public void testLeftJoinTwoLookupsUsingJoinOperator(Map queryCon ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.v", "_j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -1162,6 +1172,7 @@ public void testInnerJoinTableLookupLookupWithFilterWithOuterLimit(Map queryConte .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("j0.v", "xa", ColumnType.STRING)) .columns("dim1") + .columnTypes(ColumnType.STRING) .context(queryContext) .build() ), @@ -1573,6 +1588,7 @@ public void testInnerJoinQueryOfLookup(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.a0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -1638,6 +1654,7 @@ public void testInnerJoinQueryOfLookupRemovable(Map queryContext .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "substring(\"j0.v\", 0, 3)", ColumnType.STRING)) .columns("dim1", "dim2", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -1682,6 +1699,7 @@ public void testInnerJoinTwoLookupsToTableUsingNumericColumn(Map ) ) .columns("k", "v0") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1745,6 +1763,7 @@ public void testInnerJoinTwoLookupsToTableUsingNumericColumnInReverse(Map queryContext) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1810,6 +1830,7 @@ public void testInnerJoinLookupTableTable(Map queryContext) .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1875,6 +1896,7 @@ public void testInnerJoinLookupTableTableChained(Map queryContex .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1890,6 +1912,7 @@ public void testInnerJoinLookupTableTableChained(Map queryContex .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1966,6 +1989,7 @@ public void testWhereInSelectNullFromLookup() expressionVirtualColumn("v0", "null", ColumnType.STRING) ) .columns("__time", "v0", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1997,6 +2021,7 @@ public void testCommaJoinLeftFunction() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -2046,6 +2071,7 @@ public void testCommaJoinTableLookupTableMismatchedTypes(Map que .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("cnt") + .columnTypes(ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -2110,6 +2136,7 @@ public void testJoinTableLookupTableMismatchedTypesWithoutComma(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.k", "j0.v") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2209,6 +2238,7 @@ public void testInnerJoinCastRight(Map queryContext) ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("k", "v", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.FLOAT) .context(queryContext) .build() ), @@ -2222,6 +2252,7 @@ public void testInnerJoinCastRight(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.k", "j0.v") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2256,6 +2287,7 @@ public void testInnerJoinMismatchedTypes(Map queryContext) ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("k", "v", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.FLOAT) .context(queryContext) .build() ), @@ -2269,6 +2301,7 @@ public void testInnerJoinMismatchedTypes(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.k", "j0.v") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2304,6 +2337,7 @@ public void testInnerJoinLeftFunction(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2338,6 +2372,7 @@ public void testInnerJoinRightFunction(Map queryContext) ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("k", "v", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2348,6 +2383,7 @@ public void testInnerJoinRightFunction(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2387,6 +2423,7 @@ public void testLeftJoinLookupOntoLookupUsingJoinOperator(Map qu ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "j0.v", "_j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2440,6 +2477,7 @@ public void testLeftJoinThreeLookupsUsingJoinOperator(Map queryC ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "j0.v", "_j0.v", "__j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2486,6 +2524,7 @@ public void testSelectOnLookupUsingLeftJoinOperator(Map queryCon ) ) .columns("dim1", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2535,6 +2574,7 @@ public void testSelectOnLookupUsingRightJoinOperator(Map queryCo ) ) .columns("dim1", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2578,6 +2618,7 @@ public void testSelectOnLookupUsingFullJoinOperator(Map queryCon ) ) .columns("dim1", "m1", "cnt", "j0.k", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT, ColumnType.LONG, ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -2818,6 +2859,7 @@ public void testInnerJoinWithIsNullFilter(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .filters(isNull("dim2")) .columns("dim1", "j0.v") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -2896,6 +2938,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter(Map .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "'10.1'", ColumnType.STRING)) .columns(ImmutableList.of("v0", "__time")) + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -2914,6 +2957,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter(Map .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "'10.1'", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -2927,6 +2971,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter(Map .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "'10.1'", ColumnType.STRING)) .columns("_v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(queryContext) .build() ), @@ -2968,6 +3013,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAcces .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -2986,6 +3032,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithTimeFilter_withLeftDirectAcces )) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns("v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(queryContext) .build() ), @@ -3017,6 +3064,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere(Map .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "'10.1'", ColumnType.STRING)) .columns(ImmutableList.of("v0", "__time")) + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3027,6 +3075,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere(Map .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3039,6 +3088,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere(Map .virtualColumns(expressionVirtualColumn("_v0", "'10.1'", ColumnType.STRING)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("_v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(queryContext) .build() ), @@ -3071,7 +3121,8 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAcces .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) - .columns(ImmutableList.of("dim1")) + .columns("dim1") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3088,6 +3139,7 @@ public void testLeftJoinOnTwoInlineDataSourcesWithOuterWhere_withLeftDirectAcces .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns("v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(queryContext) .build() ), @@ -3119,6 +3171,7 @@ public void testLeftJoinOnTwoInlineDataSources(Map queryContext) .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns(ImmutableList.of("v0", "__time")) + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3129,6 +3182,7 @@ public void testLeftJoinOnTwoInlineDataSources(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3141,6 +3195,7 @@ public void testLeftJoinOnTwoInlineDataSources(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "\'10.1\'", ColumnType.STRING)) .columns("_v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(queryContext) .build() ), @@ -3174,6 +3229,7 @@ public void testLeftJoinOnTwoInlineDataSources_withLeftDirectAccess(Map queryContext .filters(equality("dim1", "10.1", ColumnType.STRING)) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns(ImmutableList.of("v0", "__time")) + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3333,6 +3396,7 @@ public void testInnerJoinOnTwoInlineDataSources(Map queryContext .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim1", "10.1", ColumnType.STRING)) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -3344,6 +3408,7 @@ public void testInnerJoinOnTwoInlineDataSources(Map queryContext ) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("_v0", "\'10.1\'", ColumnType.STRING)) + .columnTypes(ColumnType.STRING, ColumnType.LONG) .columns("_v0", "__time") .context(queryContext) .build() @@ -3385,6 +3450,7 @@ public void testGroupByOverGroupByOverInnerJoinOnTwoInlineDataSources(Map queryConte ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.d0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build(); @@ -3645,6 +3717,7 @@ public void testLeftJoinSubqueryWithNullKeyFilter(Map queryConte ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.d0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .filters(notNull("j0.d0")) .context(queryContext) .build(); @@ -3716,6 +3789,7 @@ public void testLeftJoinSubqueryWithSelectorFilter(Map queryCont ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.d0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .filters(equality("j0.d0", "abc", ColumnType.STRING)) .context(queryContext) .build() @@ -3746,6 +3820,7 @@ public void testLeftJoinWithNotNullFilter(Map queryContext) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -3756,6 +3831,7 @@ public void testLeftJoinWithNotNullFilter(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -3792,6 +3868,7 @@ public void testInnerJoin(Map queryContext) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -3802,6 +3879,7 @@ public void testInnerJoin(Map queryContext) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -3848,6 +3926,7 @@ public void testJoinWithExplicitIsNotDistinctFromCondition(Map q .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns(ImmutableList.of("dim1")) + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build()), @@ -3858,6 +3937,7 @@ public void testJoinWithExplicitIsNotDistinctFromCondition(Map q ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -3922,6 +4002,7 @@ public void testInnerJoinSubqueryWithSelectorFilter(Map queryCon ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "j0.d0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -3970,6 +4051,7 @@ public void testSemiJoinWithOuterTimeExtractScan() not(equality("dim1", "", ColumnType.STRING)) ) .columns("dim1", "v0") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -4713,6 +4795,7 @@ public void testJoinWithNonEquiCondition(Map queryContext) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1") + .columnTypes(ColumnType.FLOAT) .context(queryContext) .build() ), @@ -4724,6 +4807,7 @@ public void testJoinWithNonEquiCondition(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("(\"m1\" > \"j0.m1\")")) .columns("m1", "j0.m1") + .columnTypes(ColumnType.FLOAT, ColumnType.FLOAT) .context(queryContext) .build() ), @@ -4774,6 +4858,7 @@ public void testJoinWithEquiAndNonEquiCondition(Map queryContext .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1") + .columnTypes(ColumnType.FLOAT) .context(queryContext) .build() ), @@ -4788,6 +4873,7 @@ public void testJoinWithEquiAndNonEquiCondition(Map queryContext equality("v0", 6.0, ColumnType.DOUBLE) ) .columns("m1", "j0.m1") + .columnTypes(ColumnType.FLOAT, ColumnType.FLOAT) .context(queryContext) .build() ), @@ -4989,6 +5075,7 @@ public void testNestedGroupByOnInlineDataSourceWithFilter(Map qu .intervals(querySegmentSpec(Intervals.of( "2001-01-02T00:00:00.000Z/146140482-04-24T15:36:27.903Z"))) .columns("dim1") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -4999,6 +5086,7 @@ public void testNestedGroupByOnInlineDataSourceWithFilter(Map qu .intervals(querySegmentSpec(Intervals.of( "2001-01-02T00:00:00.000Z/146140482-04-24T15:36:27.903Z"))) .columns("dim1", "m2") + .columnTypes(ColumnType.STRING, ColumnType.DOUBLE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -5063,6 +5151,7 @@ public void testGroupByJoinAsNativeQueryWithUnoptimizedFilter(Map queryContext) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\'10.1\'", ColumnType.STRING)) .columns("v0") + .columnTypes(ColumnType.STRING) .context(queryContext) .build() ), @@ -5261,6 +5352,7 @@ public void testVirtualColumnOnMVFilterJoinExpression(Map queryC true )) .columns("dim3", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -5278,6 +5370,7 @@ public void testVirtualColumnOnMVFilterJoinExpression(Map queryC true )) .columns("dim3", "j0.dim3") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -5325,6 +5418,7 @@ public void testVirtualColumnOnMVFilterMultiJoinExpression(Map q true )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -5342,6 +5436,7 @@ public void testVirtualColumnOnMVFilterMultiJoinExpression(Map q true )) .columns("dim3", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -5358,6 +5453,7 @@ public void testVirtualColumnOnMVFilterMultiJoinExpression(Map q true )) .columns("dim3", "_j0.dim3") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(queryContext) .build() ), @@ -5381,6 +5477,7 @@ public void testInnerJoinWithFilterPushdownAndManyFiltersEmptyResults(Map Date: Thu, 7 Nov 2024 11:24:46 +0000 Subject: [PATCH 20/60] fix more --- .../sql/calcite/CalciteInsertDmlTest.java | 21 +++++++++++++++++++ .../sql/calcite/CalciteStrictInsertTest.java | 2 ++ 2 files changed, 23 insertions(+) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java index c7de25c91802..73b4b45c30c2 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteInsertDmlTest.java @@ -89,6 +89,7 @@ public void testInsertFromTable() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -109,6 +110,7 @@ public void testInsertFromViewA() .virtualColumns(expressionVirtualColumn("v0", "substring(\"dim1\", 0, 1)", ColumnType.STRING)) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("v0") + .columnTypes(ColumnType.STRING) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -139,6 +141,7 @@ public void testInsertFromViewC() .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("dim1", "dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ), @@ -147,6 +150,7 @@ public void testInsertFromViewC() .dataSource("numfoo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "l2") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ), @@ -161,6 +165,7 @@ public void testInsertFromViewC() expressionVirtualColumn("v1", "'a'", ColumnType.STRING) ) .columns("v0", "v1", "j0.l2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -179,6 +184,7 @@ public void testInsertIntoExistingTable() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -197,6 +203,7 @@ public void testInsertIntoQualifiedTable() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -314,6 +321,7 @@ public void testInsertFromExternal() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -335,6 +343,7 @@ public void testInsertFromExternalWithInputSourceSecurityEnabled() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -392,6 +401,7 @@ public void testInsertFromExternalWithSchema() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -437,6 +447,7 @@ public void testInsertFromExternalWithSchemaWithInputsourceSecurity() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -480,6 +491,7 @@ public void testInsertFromExternalFunctionalStyleWithSchemaWithInputsourceSecuri .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -532,6 +544,7 @@ public void testInsertFromExternalWithoutSecuritySupport() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -597,6 +610,7 @@ public void testInsertWithPartitionedBy() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING) .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .context(queryContextWithGranularity(Granularities.HOUR)) .build() @@ -650,6 +664,7 @@ public void testPartitionedBySupportedClauses() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(queryContext) .build() ) @@ -696,6 +711,7 @@ public void testPartitionedBySupportedGranularityLiteralClauses() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(queryContext) .build() ) @@ -925,6 +941,7 @@ public void testInsertWithClusteredBy() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1", "v1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING, ColumnType.DOUBLE) .virtualColumns( expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT), expressionVirtualColumn("v1", "ceil(\"m2\")", ColumnType.DOUBLE) @@ -966,6 +983,7 @@ public void testInsertPeriodFormGranularityWithClusteredBy() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1", "v1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING, ColumnType.DOUBLE) .virtualColumns( expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT), expressionVirtualColumn("v1", "ceil(\"m2\")", ColumnType.DOUBLE) @@ -1019,6 +1037,7 @@ public void testInsertWithPartitionedByAndClusteredBy() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING) .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .orderBy( ImmutableList.of( @@ -1051,6 +1070,7 @@ public void testInsertWithPartitionedByAndLimitOffset() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING) .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .limit(10) .offset(20) @@ -1324,6 +1344,7 @@ public void testInsertFromExternalProjectSort() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat(\"x\",\"y\")", ColumnType.STRING)) .columns("v0", "z") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .orderBy( ImmutableList.of( OrderBy.ascending("v0"), diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteStrictInsertTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteStrictInsertTest.java index a83d7e2e317f..8b088f5dd599 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteStrictInsertTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteStrictInsertTest.java @@ -20,6 +20,7 @@ package org.apache.druid.sql.calcite; import org.apache.druid.error.DruidException; +import org.apache.druid.segment.column.ColumnType; import org.apache.druid.sql.calcite.CalciteStrictInsertTest.StrictInsertComponentSupplier; import org.apache.druid.sql.calcite.filtration.Filtration; import org.apache.druid.sql.calcite.planner.CatalogResolver; @@ -75,6 +76,7 @@ public void testInsertIntoExisting() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) From b622aefc8703de0fb14a0edeeed8b04f6fc2b931 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 11:41:02 +0000 Subject: [PATCH 21/60] fix --- .../CalciteLookupFunctionQueryTest.java | 3 + .../org/apache/druid/sql/calcite/WX1.java | 86 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 sql/src/test/java/org/apache/druid/sql/calcite/WX1.java diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java index 4655af02e5dd..b2146225e7e6 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java @@ -1747,6 +1747,7 @@ public void testLookupOnValueThatIsNull() .virtualColumns( expressionVirtualColumn("v0", "null", ColumnType.STRING) ) + .columnTypes(ColumnType.STRING) .columns("v0") .filters(isNull("dim2")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1783,6 +1784,7 @@ public void testLookupOnValueThatIsNotDistinctFromNull() .virtualColumns( expressionVirtualColumn("v0", "null", ColumnType.STRING) ) + .columnTypes(ColumnType.STRING) .columns("v0") .filters(isNull("dim2")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -2139,6 +2141,7 @@ private List> buildFilterTestExpectedQueryAlwaysFalse() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "$f1") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java new file mode 100644 index 000000000000..e1c9ec729fbf --- /dev/null +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.druid.sql.calcite; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; + +public class WX1 +{ + public static void main(String[] args) throws IOException + { + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteLookupFunctionQueryTest.java"; + Path path = new File(pathname).toPath(); + List lines = Files.readAllLines(path); + List newLines = new ArrayList(); + + + String st = null; + String colLine = null; + for (String l : lines) { + + if (l.contains("ScanQueryBuilder")) { + st = l; + } + if (l.contains("columns")) { + colLine = l; + } + if (l.contains("columnTypes")) { + colLine = null; + } + if (l.contains(";")) { + st = null; + colLine = null; + } + + if (colLine !=null && !l.contains("columnTypes")) { + String[] p0 = colLine.split("[()]"); + String[] aa = p0[1].split(","); + + StringBuffer sb = new StringBuffer(); + + sb.append(colLine.substring(0, colLine.indexOf("c"))); + sb.append("columnTypes("); + + for (String colName : aa) { + sb.append("ColumnType.STRING, "); + } + int ll = sb.length(); + sb.delete(ll - 2, ll); + sb.append(")"); + System.out.println(l); + System.out.println(sb.toString()); + colLine=null; + newLines.add(sb.toString()); + } + + + + newLines.add(l); + } + + Files.write(path, newLines); + + } +} From ce7aaf77fa911d7e74923163adb7e5f561e6190e Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 11:50:32 +0000 Subject: [PATCH 22/60] fix --- .../sql/calcite/CalciteSubqueryTest.java | 35 ++++++++++++------- .../org/apache/druid/sql/calcite/WX1.java | 20 +++++++---- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java index 80ca16b7e825..b4c8c8c87ee8 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java @@ -201,6 +201,7 @@ public void testSubqueryOnDataSourceWithMissingColumnsInSegments(String testName .dataSource("dsMissingCol") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "col1", "col2", "col3") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(10) .build() @@ -371,6 +372,7 @@ public void testTwoExactCountDistincts(String testName, Map quer ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("a0", "j0.a0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -400,6 +402,7 @@ public void testViewAndJoin(String testName, Map queryContext) newScanQueryBuilder().dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .context(queryContextModified) .build() ), @@ -412,6 +415,7 @@ public void testViewAndJoin(String testName, Map queryContext) newScanQueryBuilder().dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .context(queryContextModified) .build() ), @@ -535,6 +539,7 @@ public void testUsingSubqueryAsFilterWithInnerSort(String testName, Map query .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("__time") + .columnTypes(ColumnType.LONG) .context(queryContext) .build()), "j0.", @@ -996,6 +1006,7 @@ public void testUsingSubqueryWithLimit(String testName, Map quer .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "0", ColumnType.LONG)) .columns("v0") + .columnTypes(ColumnType.LONG) .limit(10) .context(queryContext) .build() @@ -1030,18 +1041,7 @@ public void testSelfJoin(String testName, Map queryContext) newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns( - ImmutableList.of( - "__time", - "dim1", - "dim2", - "dim3", - "cnt", - "m1", - "m2", - "unique_dim1" - ) - ) + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() @@ -1098,6 +1098,7 @@ public void testJoinWithSubqueries(String testName, Map queryCon newScanQueryBuilder() .dataSource("foo2") .columns("dim1") + .columnTypes(ColumnType.STRING) .eternityInterval() .build() ), @@ -1117,6 +1118,7 @@ public void testJoinWithSubqueries(String testName, Map queryCon newScanQueryBuilder() .dataSource("foo2") .columns("dim1", "dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .eternityInterval() .build() ), @@ -1129,6 +1131,7 @@ public void testJoinWithSubqueries(String testName, Map queryCon ) ) .columns("dim1", "j0.dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .eternityInterval() .build() ), @@ -1141,6 +1144,7 @@ public void testJoinWithSubqueries(String testName, Map queryCon ) ) .columns("dim1", "_j0.j0.dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .eternityInterval() .build() ), @@ -1314,6 +1318,7 @@ public void testSingleValueStringAgg(String testName, Map queryC .limit(1L) .order(Order.DESCENDING) .columns("channel", "__time") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1454,6 +1459,7 @@ public void testGroupBySubqueryWithEarliestAggregator(String testName, Map lines = Files.readAllLines(path); List newLines = new ArrayList(); @@ -43,7 +46,7 @@ public static void main(String[] args) throws IOException if (l.contains("ScanQueryBuilder")) { st = l; } - if (l.contains("columns")) { + if (l.contains("columns(") && l.contains(")")) { colLine = l; } if (l.contains("columnTypes")) { @@ -54,7 +57,10 @@ public static void main(String[] args) throws IOException colLine = null; } + newLines.add(l); + if (colLine !=null && !l.contains("columnTypes")) { + System.out.println(colLine); String[] p0 = colLine.split("[()]"); String[] aa = p0[1].split(","); @@ -64,7 +70,11 @@ public static void main(String[] args) throws IOException sb.append("columnTypes("); for (String colName : aa) { - sb.append("ColumnType.STRING, "); + if(colName.contains("__time") || colName.contains("cnt")) { + sb.append("ColumnType.LONG, "); + } else { + sb.append("ColumnType.STRING, "); + } } int ll = sb.length(); sb.delete(ll - 2, ll); @@ -74,10 +84,6 @@ public static void main(String[] args) throws IOException colLine=null; newLines.add(sb.toString()); } - - - - newLines.add(l); } Files.write(path, newLines); From 0bed6354c8c03acad8e91db4d29e32b0a87f806b Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 11:51:39 +0000 Subject: [PATCH 23/60] fix --- .../java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java index b4c8c8c87ee8..e20b938590f0 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java @@ -372,7 +372,7 @@ public void testTwoExactCountDistincts(String testName, Map quer ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("a0", "j0.a0") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() From 7101c6641cb17702d918a21d8e662e98d243cbad Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 11:58:24 +0000 Subject: [PATCH 24/60] update crap --- .../sql/calcite/CalciteSubqueryTest.java | 1 + .../org/apache/druid/sql/calcite/WX1.java | 37 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java index e20b938590f0..8117e6ff02bf 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java @@ -1042,6 +1042,7 @@ public void testSelfJoin(String testName, Map queryContext) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(queryContext) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 3c7498adde55..aecd74bd3849 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -57,9 +57,7 @@ public static void main(String[] args) throws IOException colLine = null; } - newLines.add(l); - - if (colLine !=null && !l.contains("columnTypes")) { + if (colLine !=null && l!=colLine && !l.contains("columnTypes")) { System.out.println(colLine); String[] p0 = colLine.split("[()]"); String[] aa = p0[1].split(","); @@ -70,11 +68,12 @@ public static void main(String[] args) throws IOException sb.append("columnTypes("); for (String colName : aa) { - if(colName.contains("__time") || colName.contains("cnt")) { - sb.append("ColumnType.LONG, "); - } else { - sb.append("ColumnType.STRING, "); - } + colName=colName.strip(); + colName=colName.replaceAll("\"", ""); + + String type=getTypeForColName(colName); + + sb.append(type + ", "); } int ll = sb.length(); sb.delete(ll - 2, ll); @@ -84,9 +83,31 @@ public static void main(String[] args) throws IOException colLine=null; newLines.add(sb.toString()); } + + newLines.add(l); } + + Files.write(path, newLines); } + + private static String getTypeForColName(String colName) + { + switch (colName) + { + case "m1": + return "ColumnType.FLOAT"; + case "m2": + return "ColumnType.DOUBLE"; + case "unique_dim1": + return "ColumnType.ofComplex(\"hyperUnique\")"; + case "cnt": + case "__time": + return "ColumnType.LONG"; + default: + return "ColumnType.STRING"; + } + } } From c0f6bd6649311eedc0cc28dc38108af7bcc89364 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 12:03:36 +0000 Subject: [PATCH 25/60] fix some/etc --- .../calcite/CalciteNestedDataQueryTest.java | 26 +++++++++++++++++++ .../org/apache/druid/sql/calcite/WX1.java | 21 +++++++-------- 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java index 046472c8b8a9..451f63524d2a 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java @@ -1183,6 +1183,7 @@ public void testJsonValueArrays() new NestedFieldVirtualColumn("arrayNestedLong", "$[0]", "v3", ColumnType.LONG_ARRAY) ) .columns("v0", "v1", "v2", "v3") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ) @@ -1270,6 +1271,7 @@ public void testUnnestRootSingleTypeArrayLongNulls() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") + .columnTypes(ColumnType.LONG) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1329,6 +1331,7 @@ public void testUnnestRootSingleTypeArrayStringNulls() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") + .columnTypes(ColumnType.LONG) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1385,6 +1388,7 @@ public void testUnnestRootSingleTypeArrayDoubleNulls() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -4856,6 +4860,7 @@ public void testJsonQuery() ) ) .columns("v0", "v1") + .columnTypes(ColumnType.NESTED_DATA, ColumnType.NESTED_DATA) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -4905,6 +4910,7 @@ public void testJsonQueryAndJsonObject() new NestedFieldVirtualColumn("nest", "$.x", "v2", ColumnType.STRING) ) .columns("v0") + .columnTypes(ColumnType.NESTED_DATA) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -4954,6 +4960,7 @@ public void testJsonMerging() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5001,6 +5008,7 @@ public void testCompositionTyping() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5051,6 +5059,7 @@ public void testToJsonAndParseJson() ) ) .columns("string", "v0", "v1", "v2") + .columnTypes(ColumnType.STRING, ColumnType.NESTED_DATA, ColumnType.NESTED_DATA, ColumnType.NESTED_DATA) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5146,6 +5155,7 @@ public void testJsonPathNegativeIndex() expressionVirtualColumn("v2", "json_keys(\"nester\",'$.array[-1]')", ColumnType.STRING_ARRAY) ) .columns("v0", "v1", "v2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5182,6 +5192,7 @@ public void testJsonPathsNonJsonInput() expressionVirtualColumn("v1", "array('$')", ColumnType.STRING_ARRAY) ) .columns("v0", "v1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5220,6 +5231,7 @@ public void testJsonKeysNonJsonInput() expressionVirtualColumn("v1", "null", ColumnType.STRING_ARRAY) ) .columns("v0", "v1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5551,6 +5563,7 @@ public void testScanStringNotNullCast() ) .filters(notNull("v0")) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6648,6 +6661,7 @@ public void testFilterJsonIsNotNull() .dataSource(DATA_SOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("nest") + .columnTypes(ColumnType.STRING) .filters(notNull("nest")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6677,6 +6691,7 @@ public void testFilterJsonIsNull() .dataSource(DATA_SOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("nest", "nester") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .filters(isNull("nest")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6733,6 +6748,7 @@ public void testCoalesceOnNestedColumns() .virtualColumns(expressionVirtualColumn("v0", "nvl(\"j0.unnest\",\"long\")", ColumnType.LONG)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest", "long", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -6780,6 +6796,7 @@ public void testCoalesceOnNestedColumnsLater() )) .intervals(querySegmentSpec(Filtration.eternity())) .columns("long") + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -6794,6 +6811,7 @@ public void testCoalesceOnNestedColumnsLater() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "nvl(\"long\",\"j0.unnest\")", ColumnType.LONG)) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -6879,6 +6897,7 @@ public void testJsonQueryDynamicArg() ) ) .columns("v0", "v1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6919,6 +6938,7 @@ public void testJsonQueryArrays() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6972,6 +6992,7 @@ public void testJsonQueryArrayNullArray() ) .filters(isNull("arrayObject")) .columns("v0") + .columnTypes(ColumnType.STRING) .limit(1) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -7012,6 +7033,7 @@ public void testUnnestJsonQueryArrays() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -7239,6 +7261,7 @@ public void testNvlJsonValueDoubleMissingColumn() .filters(range("v0", ColumnType.LONG, NullHandling.sqlCompatible() ? 0.0 : "0", null, true, false)) .limit(1) .columns("v1", "v0", "v2") + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.LONG) .build() ), NullHandling.sqlCompatible() @@ -7273,6 +7296,7 @@ public void testNvlJsonValueDoubleSometimesMissing() expressionVirtualColumn("v3", "(nvl(\"v0\",1.0) == 1.0)", ColumnType.LONG) ) .columns("v0", "v1", "v2", "v3") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), NullHandling.sqlCompatible() @@ -7324,6 +7348,7 @@ public void testNvlJsonValueDoubleSometimesMissingRangeFilter() ) .filters(range("v0", ColumnType.LONG, NullHandling.sqlCompatible() ? 0.0 : "0", null, true, false)) .columns("v1", "v0", "v2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), NullHandling.sqlCompatible() @@ -7398,6 +7423,7 @@ public void testNvlJsonValueDoubleSometimesMissingEqualityFilter() ) .filters(equality("v0", 1.0, ColumnType.DOUBLE)) .columns("v1", "v0", "v2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), NullHandling.sqlCompatible() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index aecd74bd3849..7165d981aac1 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -19,6 +19,8 @@ package org.apache.druid.sql.calcite; +import org.apache.commons.lang3.StringUtils; + import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -31,14 +33,13 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteSubqueryTest.java"; -// pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java"; + // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); List lines = Files.readAllLines(path); List newLines = new ArrayList(); - String st = null; String colLine = null; for (String l : lines) { @@ -57,7 +58,7 @@ public static void main(String[] args) throws IOException colLine = null; } - if (colLine !=null && l!=colLine && !l.contains("columnTypes")) { + if (colLine != null && l != colLine && !l.contains("columnTypes")) { System.out.println(colLine); String[] p0 = colLine.split("[()]"); String[] aa = p0[1].split(","); @@ -68,27 +69,25 @@ public static void main(String[] args) throws IOException sb.append("columnTypes("); for (String colName : aa) { - colName=colName.strip(); - colName=colName.replaceAll("\"", ""); + colName = StringUtils.strip(colName); + colName = colName.replaceAll("\"", ""); - String type=getTypeForColName(colName); + String type = getTypeForColName(colName); - sb.append(type + ", "); + sb.append(type + ", "); } int ll = sb.length(); sb.delete(ll - 2, ll); sb.append(")"); System.out.println(l); System.out.println(sb.toString()); - colLine=null; + colLine = null; newLines.add(sb.toString()); } newLines.add(l); } - - Files.write(path, newLines); } From cf8c4ee3261bfde93da5e40a3ca9a26fb04bf47f Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 12:05:00 +0000 Subject: [PATCH 26/60] fix --- .../apache/druid/sql/calcite/CalciteParameterQueryTest.java | 4 ++++ sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java index e5b181f55db0..a023e731e58c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java @@ -74,6 +74,7 @@ public void testSelectConstantParamGetsConstant() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -95,6 +96,7 @@ public void testParamsGetOptimizedIntoConstant() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "2", ColumnType.LONG)) .columns("v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -246,6 +248,7 @@ public void testParamsInSelectExpressionAndLimit() expressionVirtualColumn("v0", "substring(\"dim2\", 0, 1)", ColumnType.STRING) ) .columns("v0") + .columnTypes(ColumnType.STRING) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -684,6 +687,7 @@ public void testWrongTypeParameter() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .build() ), diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 7165d981aac1..a99261fdbf05 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 590fc01e626b4fc6b3a7e47834732eb0a82bf21e Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 12:08:27 +0000 Subject: [PATCH 27/60] remove immuatblelist --- .../sql/calcite/CalciteSelectQueryTest.java | 28 +++++++++---------- .../org/apache/druid/sql/calcite/WX1.java | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java index a8373bd962ef..4756f7bd33ce 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java @@ -299,7 +299,7 @@ public void testDruidLogicalValuesRule() .build() )) .intervals(new MultipleIntervalSegmentSpec(ImmutableList.of(Intervals.ETERNITY))) - .columns(ImmutableList.of("EXPR$0", "EXPR$1", "EXPR$2")) + .columns("EXPR$0", "EXPR$1", "EXPR$2") .build() ), ImmutableList.of( @@ -1446,7 +1446,7 @@ public void testSelectStarWithLimitTimeDescending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1")) + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1472,7 +1472,7 @@ public void testSelectStarWithoutLimitTimeAscending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1")) + .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") .limit(Long.MAX_VALUE) .order(Order.ASCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1522,7 +1522,7 @@ public void testSelectSingleColumnWithLimitDescending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1", "__time")) + .columns("dim1", "__time") .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1548,7 +1548,7 @@ public void testSelectStarFromSelectSingleColumnWithLimitDescending() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1")) + .columns("dim1") .limit(2) .order(Order.NONE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1572,7 +1572,7 @@ public void testSelectLimitWrapping() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1", "__time")) + .columns("dim1", "__time") .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1596,7 +1596,7 @@ public void testSelectLimitWrappingOnTopOfOffset() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1", "__time")) + .columns("dim1", "__time") .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1621,7 +1621,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndLowLimit() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1", "__time")) + .columns("dim1", "__time") .offset(1) .limit(1) .order(Order.DESCENDING) @@ -1645,7 +1645,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndHighLimit() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1", "__time")) + .columns("dim1", "__time") .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1818,7 +1818,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerLimitDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) - .columns(ImmutableList.of("v0", "__time")) + .columns("v0", "__time") .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1847,7 +1847,7 @@ public void testSelectProjectionFromSelectSingleColumnDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) - .columns(ImmutableList.of("v0")) + .columns("v0") .order(Order.NONE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1874,7 +1874,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerAndOuterLimitDesc .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) - .columns(ImmutableList.of("v0", "__time")) + .columns("v0", "__time") .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1902,7 +1902,7 @@ public void testOrderThenLimitThenFilter() newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("__time", "dim1")) + .columns("__time", "dim1") .limit(4) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1911,7 +1911,7 @@ public void testOrderThenLimitThenFilter() ) ) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("dim1")) + .columns("dim1") .filters(in("dim1", Arrays.asList("abc", "def"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index a99261fdbf05..f809c0be3bb4 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteParameterQueryTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 13a8a26463073ae0d7c3ba7eb21f197bd57f1a0d Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 12:10:36 +0000 Subject: [PATCH 28/60] more --- .../sql/calcite/CalciteSelectQueryTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java index 4756f7bd33ce..2b02d4442414 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java @@ -93,6 +93,7 @@ public void testSelectConstantExpression() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -126,6 +127,7 @@ public void testExpressionContainingNull() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -175,6 +177,7 @@ public void testValuesContainingNull() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -202,6 +205,7 @@ public void testMultipleValuesContainingNull() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -229,6 +233,7 @@ public void testMultipleValuesContainingNullAndIntegerValues() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -266,6 +271,7 @@ public void testSelectNonNumericNumberLiterals() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0", "EXPR$1", "EXPR$2", "EXPR$3", "EXPR$4") + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -300,6 +306,7 @@ public void testDruidLogicalValuesRule() )) .intervals(new MultipleIntervalSegmentSpec(ImmutableList.of(Intervals.ETERNITY))) .columns("EXPR$0", "EXPR$1", "EXPR$2") + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .build() ), ImmutableList.of( @@ -323,6 +330,7 @@ public void testSelectConstantExpressionFromTable() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "2", ColumnType.LONG)) .columns("v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -481,6 +489,7 @@ public void testBitwiseExpressions() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .virtualColumns( expressionVirtualColumn("v0", "bitwiseAnd(\"l1\",\"l2\")", ColumnType.LONG), expressionVirtualColumn("v1", "bitwiseOr(\"l1\",\"l2\")", ColumnType.LONG), @@ -520,6 +529,7 @@ public void testSafeDivideWithoutTable() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1", "v2", "v3", "v4") + .columnTypes(ColumnType.LONG, ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.LONG) .virtualColumns( expressionVirtualColumn("v0", NullHandling.sqlCompatible() ? "null" : "0", ColumnType.LONG), expressionVirtualColumn("v1", "4.0", ColumnType.DOUBLE), @@ -577,6 +587,7 @@ public void testSafeDivideExpressions() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1", "v2", "v3") + .columnTypes(ColumnType.FLOAT, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.FLOAT) .virtualColumns( expressionVirtualColumn("v0", "safe_divide(\"f1\",\"f2\")", ColumnType.FLOAT), expressionVirtualColumn("v1", "safe_divide(\"l1\",\"l2\")", ColumnType.LONG), @@ -635,6 +646,7 @@ public void testSelectStarWithDimFilter() ) ) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -866,6 +878,7 @@ public void testSelectNonAggregatingWithLimitLiterallyZero() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -891,6 +904,7 @@ public void testSelectNonAggregatingWithLimitReducedToZero() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -915,6 +929,7 @@ public void testSelectAggregatingWithLimitReducedToZero() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -979,6 +994,7 @@ public void testSelectCurrentTimeAndDateLosAngeles() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("CURRENT_TIMESTAMP", "EXPR$1", "EXPR$2", "EXPR$3", "EXPR$4", "CURRENT_DATE", "EXPR$6") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(context) .build() @@ -1107,6 +1123,7 @@ public void testSelectStarFromLookup() .dataSource(new LookupDataSource("lookyloo")) .intervals(querySegmentSpec(Filtration.eternity())) .columns("k", "v") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1132,6 +1149,7 @@ public void testSelectStar() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1164,6 +1182,7 @@ public void testSelectStarOnForbiddenTable() .dataSource(CalciteTests.FORBIDDEN_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1213,6 +1232,7 @@ public void testSelectStarOnForbiddenView() ) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("__time", "v0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1245,6 +1265,7 @@ public void testSelectStarOnRestrictedView() .filters(equality("dim2", "a", ColumnType.STRING)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "m1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1269,6 +1290,7 @@ public void testSelectStarOnRestrictedView() .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("__time", "dim1", "dim2", "m1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1343,6 +1365,7 @@ public void testSelectStarWithLimit() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1368,6 +1391,7 @@ public void testSelectStarWithLimitAndOffset() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .offset(1) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1394,6 +1418,7 @@ public void testSelectWithProjection() expressionVirtualColumn("v0", "substring(\"dim2\", 0, 1)", ColumnType.STRING) ) .columns("v0") + .columnTypes(ColumnType.STRING) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1424,6 +1449,7 @@ public void testSelectWithExpressionFilter() : equality("v0", 7.0, ColumnType.FLOAT) ) .columns("dim1") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1447,6 +1473,7 @@ public void testSelectStarWithLimitTimeDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1473,6 +1500,7 @@ public void testSelectStarWithoutLimitTimeAscending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .limit(Long.MAX_VALUE) .order(Order.ASCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1501,6 +1529,7 @@ public void testSelectSingleColumnTwice() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2") + .columnTypes(ColumnType.STRING) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1523,6 +1552,7 @@ public void testSelectSingleColumnWithLimitDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1549,6 +1579,7 @@ public void testSelectStarFromSelectSingleColumnWithLimitDescending() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .limit(2) .order(Order.NONE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1573,6 +1604,7 @@ public void testSelectLimitWrapping() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1597,6 +1629,7 @@ public void testSelectLimitWrappingOnTopOfOffset() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1622,6 +1655,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndLowLimit() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .offset(1) .limit(1) .order(Order.DESCENDING) @@ -1646,6 +1680,7 @@ public void testSelectLimitWrappingOnTopOfOffsetAndHighLimit() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .offset(1) .limit(2) .order(Order.DESCENDING) @@ -1819,6 +1854,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerLimitDescending() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) .columns("v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1848,6 +1884,7 @@ public void testSelectProjectionFromSelectSingleColumnDescending() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) .columns("v0") + .columnTypes(ColumnType.STRING) .order(Order.NONE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -1875,6 +1912,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerAndOuterLimitDesc .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) .columns("v0", "__time") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1903,6 +1941,7 @@ public void testOrderThenLimitThenFilter() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .limit(4) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1912,6 +1951,7 @@ public void testOrderThenLimitThenFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .filters(in("dim1", Arrays.asList("abc", "def"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) From 906048227af8f01d2f99d3d5d41a158df43479fe Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 14:29:24 +0000 Subject: [PATCH 29/60] cleanupo/fix/etc --- .../apache/druid/msq/exec/MSQSelectTest.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java index 1c6c08305af7..1313298b10d1 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java @@ -258,8 +258,8 @@ public void testSelectOnFoo2(String contextName, Map context) .context(defaultScanQueryContext( context, RowSignature.builder() - .add("dim2", ColumnType.STRING) .add("m1", ColumnType.LONG) + .add("dim2", ColumnType.STRING) .build() )) .build()) @@ -1476,16 +1476,13 @@ public void testExternSelectWithMultipleWorkers(String contextName, Map Date: Thu, 7 Nov 2024 16:23:48 +0000 Subject: [PATCH 30/60] fix --- .../test/java/org/apache/druid/msq/exec/MSQSelectTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java index 1313298b10d1..a82a33c44d60 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java @@ -1475,7 +1475,9 @@ public void testExternSelectWithMultipleWorkers(String contextName, Map Date: Thu, 7 Nov 2024 16:30:24 +0000 Subject: [PATCH 31/60] make msqa pass --- .../apache/druid/msq/exec/MSQArraysTest.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java index 03890d7a3263..24d1e1bac799 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java @@ -758,13 +758,13 @@ public void testSelectOnArrays(String contextName, Map context, .build(); RowSignature scanSignature = RowSignature.builder() - .add("arrayDouble", ColumnType.DOUBLE_ARRAY) - .add("arrayDoubleNulls", ColumnType.DOUBLE_ARRAY) - .add("arrayLong", ColumnType.LONG_ARRAY) - .add("arrayLongNulls", ColumnType.LONG_ARRAY) + .add("v0", ColumnType.LONG) .add("arrayString", ColumnType.STRING_ARRAY) .add("arrayStringNulls", ColumnType.STRING_ARRAY) - .add("v0", ColumnType.LONG) + .add("arrayLong", ColumnType.LONG_ARRAY) + .add("arrayLongNulls", ColumnType.LONG_ARRAY) + .add("arrayDouble", ColumnType.DOUBLE_ARRAY) + .add("arrayDoubleNulls", ColumnType.DOUBLE_ARRAY) .build(); final Map adjustedContext = new HashMap<>(context); @@ -773,15 +773,7 @@ public void testSelectOnArrays(String contextName, Map context, Query expectedQuery = newScanQueryBuilder() .dataSource(dataFileExternalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) - .columns( - "arrayDouble", - "arrayDoubleNulls", - "arrayLong", - "arrayLongNulls", - "arrayString", - "arrayStringNulls", - "v0" - ) + .columns(scanSignature.getColumnNames()) .virtualColumns(new ExpressionVirtualColumn( "v0", "timestamp_parse(\"timestamp\",null,'UTC')", From f13812baab05072975f27cb645859f5c09ab9539 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 16:51:13 +0000 Subject: [PATCH 32/60] fix --- .../org/apache/druid/msq/exec/MSQParseExceptionsTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQParseExceptionsTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQParseExceptionsTest.java index 8577dcd18d4e..9801ea225c06 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQParseExceptionsTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQParseExceptionsTest.java @@ -180,6 +180,7 @@ public void testIngestWithSanitizedNullByte() throws IOException ) ) .columns("v0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(defaultScanQueryContext( context, @@ -272,13 +273,14 @@ public void testIngestWithSanitizedNullByteUsingContextParameter() throws IOExce ColumnType.LONG ) ) - .columns("agent_category", "v0") + .columns("v0", "agent_category") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(defaultScanQueryContext( context, RowSignature.builder() - .add("agent_category", ColumnType.STRING) .add("v0", ColumnType.LONG) + .add("agent_category", ColumnType.STRING) .build() )) .build(); From f642579985156f6e76ccd3c62502dc5400c8423c Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 16:58:47 +0000 Subject: [PATCH 33/60] x --- .../apache/druid/sql/calcite/CalciteTableAppendTest.java | 6 ++++++ sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java index 201c35cec3e4..33478e2630b2 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java @@ -44,6 +44,7 @@ public void testUnion() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns( @@ -54,6 +55,7 @@ public void testUnion() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim4") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -90,6 +92,7 @@ public void testAppend2() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim4", "d1", "f1") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.DOUBLE, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -131,6 +134,7 @@ public void testAppendSameTableMultipleTimes() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim4", "d1", "f1") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.DOUBLE, ColumnType.FLOAT) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .filters(equality("dim1", "2", ColumnType.STRING)) @@ -159,6 +163,7 @@ public void testAppendtSingleTableIsValid() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -189,6 +194,7 @@ public void testAppendCompatibleColumns() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim3") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index f809c0be3bb4..dba619d71af7 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); @@ -96,8 +96,10 @@ private static String getTypeForColName(String colName) { switch (colName) { + case "f1": case "m1": return "ColumnType.FLOAT"; + case "d1": case "m2": return "ColumnType.DOUBLE"; case "unique_dim1": From fa6c91e8de2586609859a80295ac222f7d0dfbee Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:13:45 +0000 Subject: [PATCH 34/60] x --- .../sql/calcite/CalciteSelectQueryTest.java | 70 +++++++++---------- .../druid/sql/calcite/QueryTestRunner.java | 2 +- .../org/apache/druid/sql/calcite/WX1.java | 2 +- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java index 2b02d4442414..040445b0070d 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java @@ -127,7 +127,7 @@ public void testExpressionContainingNull() ) ) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -489,7 +489,7 @@ public void testBitwiseExpressions() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.DOUBLE) .virtualColumns( expressionVirtualColumn("v0", "bitwiseAnd(\"l1\",\"l2\")", ColumnType.LONG), expressionVirtualColumn("v1", "bitwiseOr(\"l1\",\"l2\")", ColumnType.LONG), @@ -994,7 +994,7 @@ public void testSelectCurrentTimeAndDateLosAngeles() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("CURRENT_TIMESTAMP", "EXPR$1", "EXPR$2", "EXPR$3", "EXPR$4", "CURRENT_DATE", "EXPR$6") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(context) .build() @@ -1717,22 +1717,21 @@ public void testSelectLimitWrappingAgainAkaIDontReallyQuiteUnderstandCalciteQuer .dataSource(CalciteTests.DATASOURCE5) .intervals(querySegmentSpec(Intervals.of("1990-01-01T00:00:00.000Z/146140482-04-24T15:36:27.903Z"))) .columns( - ImmutableList.builder() - .add("__time") - .add("count") - .add("dimHyperUnique") - .add("dimMultivalEnumerated") - .add("dimMultivalEnumerated2") - .add("dimMultivalSequentialWithNulls") - .add("dimSequential") - .add("dimSequentialHalfNull") - .add("dimUniform") - .add("dimZipf") - .add("metFloatNormal") - .add("metFloatZipf") - .add("metLongSequential") - .build() + "__time", + "count", + "dimHyperUnique", + "dimMultivalEnumerated", + "dimMultivalEnumerated2", + "dimMultivalSequentialWithNulls", + "dimSequential", + "dimSequentialHalfNull", + "dimUniform", + "dimZipf", + "metFloatNormal", + "metFloatZipf", + "metLongSequential" ) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(OUTER_LIMIT_CONTEXT) @@ -1784,23 +1783,22 @@ public void testSelectLimitWrappingAgainAkaIDontReallyQuiteUnderstandCalciteQuer .dataSource(CalciteTests.DATASOURCE5) .intervals(querySegmentSpec(Intervals.of("1990-01-01T00:00:00.000Z/146140482-04-24T15:36:27.903Z"))) .columns( - ImmutableList.builder() - .add("__time") - .add("count") - .add("dimHyperUnique") - .add("dimMultivalEnumerated") - .add("dimMultivalEnumerated2") - .add("dimMultivalSequentialWithNulls") - .add("dimSequential") - .add("dimSequentialHalfNull") - .add("dimUniform") - .add("dimZipf") - .add("metFloatNormal") - .add("metFloatZipf") - .add("metLongSequential") - .add("metLongUniform") - .build() + "__time", + "count", + "dimHyperUnique", + "dimMultivalEnumerated", + "dimMultivalEnumerated2", + "dimMultivalSequentialWithNulls", + "dimSequential", + "dimSequentialHalfNull", + "dimUniform", + "dimZipf", + "metFloatNormal", + "metFloatZipf", + "metLongSequential", + "metLongUniform" ) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .limit(2) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(OUTER_LIMIT_CONTEXT) @@ -1854,7 +1852,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerLimitDescending() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) .columns("v0", "__time") - .columnTypes(ColumnType.STRING, ColumnType.LONG) + .columnTypes(ColumnType.STRING, ColumnType.STRING) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -1912,7 +1910,7 @@ public void testSelectProjectionFromSelectSingleColumnWithInnerAndOuterLimitDesc .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat('beep ',\"dim1\")", ColumnType.STRING)) .columns("v0", "__time") - .columnTypes(ColumnType.STRING, ColumnType.LONG) + .columnTypes(ColumnType.STRING, ColumnType.STRING) .limit(2) .order(Order.DESCENDING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 049f95e0d2e7..073accad6e5b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -469,7 +469,7 @@ private void verifyQuery(QueryResults queryResults) sv.replace(l - 2, l, ")"); System.out.println("\n"); System.out.println(sv.toString()); - fail(sv.toString()); + fail("\n" + sv.toString()); } } diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index dba619d71af7..4b36573fcd1b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteTableAppendTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 44e64c785e995614066dc8ffcb539b66afa14661 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:30:41 +0000 Subject: [PATCH 35/60] x --- .../calcite/CalciteNestedDataQueryTest.java | 51 +++++++++---------- .../org/apache/druid/sql/calcite/WX1.java | 4 ++ 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java index 451f63524d2a..328e9cbdd5ba 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteNestedDataQueryTest.java @@ -1183,7 +1183,7 @@ public void testJsonValueArrays() new NestedFieldVirtualColumn("arrayNestedLong", "$[0]", "v3", ColumnType.LONG_ARRAY) ) .columns("v0", "v1", "v2", "v3") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.DOUBLE_ARRAY, ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ) @@ -1331,7 +1331,7 @@ public void testUnnestRootSingleTypeArrayStringNulls() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") - .columnTypes(ColumnType.LONG) + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1388,7 +1388,7 @@ public void testUnnestRootSingleTypeArrayDoubleNulls() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -4960,7 +4960,7 @@ public void testJsonMerging() ) ) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.ofComplex("json")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5008,7 +5008,7 @@ public void testCompositionTyping() ) ) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5155,7 +5155,7 @@ public void testJsonPathNegativeIndex() expressionVirtualColumn("v2", "json_keys(\"nester\",'$.array[-1]')", ColumnType.STRING_ARRAY) ) .columns("v0", "v1", "v2") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING, ColumnType.NESTED_DATA, ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5192,7 +5192,7 @@ public void testJsonPathsNonJsonInput() expressionVirtualColumn("v1", "array('$')", ColumnType.STRING_ARRAY) ) .columns("v0", "v1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5231,7 +5231,7 @@ public void testJsonKeysNonJsonInput() expressionVirtualColumn("v1", "null", ColumnType.STRING_ARRAY) ) .columns("v0", "v1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -5355,9 +5355,8 @@ public void testSelectPathSelectorFilterVariantNull() new NestedFieldVirtualColumn("nester", "$.n.x", "v0", ColumnType.LONG), new NestedFieldVirtualColumn("nest", "$.x", "v1", ColumnType.STRING) ) - .columns( - "v1", "v0" - ) + .columns("v1", "v0") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .filters(isNull("v0")) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -5563,7 +5562,7 @@ public void testScanStringNotNullCast() ) .filters(notNull("v0")) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6069,6 +6068,7 @@ public void testScanAllTypesAuto() "cObjectArray", "cnt" ) + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.LONG, ColumnType.STRING, ColumnType.DOUBLE, ColumnType.ofComplex("json"), ColumnType.LONG_ARRAY, ColumnType.STRING_ARRAY, ColumnType.ofComplex("json"), ColumnType.ofComplex("json"), ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.LONG_ARRAY, ColumnType.DOUBLE_ARRAY, ColumnType.DOUBLE_ARRAY, ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.ofComplex("json"), ColumnType.ofComplex("json"), ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.ofComplex("json"), ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.DOUBLE_ARRAY, ColumnType.LONG_ARRAY, ColumnType.ofComplex("json"), ColumnType.LONG_ARRAY, ColumnType.ofComplex("json"), ColumnType.ofComplex("json"), ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6661,7 +6661,7 @@ public void testFilterJsonIsNotNull() .dataSource(DATA_SOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("nest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.NESTED_DATA) .filters(notNull("nest")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6691,7 +6691,7 @@ public void testFilterJsonIsNull() .dataSource(DATA_SOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("nest", "nester") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.ofComplex("json"), ColumnType.ofComplex("json")) .filters(isNull("nest")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6748,7 +6748,7 @@ public void testCoalesceOnNestedColumns() .virtualColumns(expressionVirtualColumn("v0", "nvl(\"j0.unnest\",\"long\")", ColumnType.LONG)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest", "long", "v0") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -6811,7 +6811,7 @@ public void testCoalesceOnNestedColumnsLater() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "nvl(\"long\",\"j0.unnest\")", ColumnType.LONG)) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -6897,7 +6897,7 @@ public void testJsonQueryDynamicArg() ) ) .columns("v0", "v1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.ofComplex("json")) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ), @@ -6938,7 +6938,7 @@ public void testJsonQueryArrays() ) ) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.ofArray(ColumnType.NESTED_DATA)) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -6992,7 +6992,7 @@ public void testJsonQueryArrayNullArray() ) .filters(isNull("arrayObject")) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.ofArray(ColumnType.NESTED_DATA)) .limit(1) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) @@ -7033,7 +7033,7 @@ public void testUnnestJsonQueryArrays() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.ofComplex("json")) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -7204,9 +7204,8 @@ public void testJsonValueNestedEmptyArray() Druids.newScanQueryBuilder() .dataSource(DATA_SOURCE_ALL) .intervals(querySegmentSpec(Filtration.eternity())) - .columns( - "v0" - ) + .columns("v0") + .columnTypes(ColumnType.STRING) .virtualColumns( new NestedFieldVirtualColumn( "cObj", @@ -7296,7 +7295,7 @@ public void testNvlJsonValueDoubleSometimesMissing() expressionVirtualColumn("v3", "(nvl(\"v0\",1.0) == 1.0)", ColumnType.LONG) ) .columns("v0", "v1", "v2", "v3") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.LONG, ColumnType.LONG) .build() ), NullHandling.sqlCompatible() @@ -7348,7 +7347,7 @@ public void testNvlJsonValueDoubleSometimesMissingRangeFilter() ) .filters(range("v0", ColumnType.LONG, NullHandling.sqlCompatible() ? 0.0 : "0", null, true, false)) .columns("v1", "v0", "v2") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.LONG) .build() ), NullHandling.sqlCompatible() @@ -7423,7 +7422,7 @@ public void testNvlJsonValueDoubleSometimesMissingEqualityFilter() ) .filters(equality("v0", 1.0, ColumnType.DOUBLE)) .columns("v1", "v0", "v2") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.LONG) .build() ), NullHandling.sqlCompatible() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 4b36573fcd1b..f0ad59ed044f 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -96,6 +96,10 @@ private static String getTypeForColName(String colName) { switch (colName) { + case "j0.unnest": + case "nest": + case "nester": + return "ColumnType.ofComplex(\"json\"))"; case "f1": case "m1": return "ColumnType.FLOAT"; From 956c8ef0a4e459704c7cb5760534a64ac4e7e31a Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:39:06 +0000 Subject: [PATCH 36/60] fix onemore --- .../sql/calcite/IngestTableFunctionTest.java | 16 +++++++++++++++ .../druid/sql/calcite/QueryTestRunner.java | 20 ++++++++++++++----- .../org/apache/druid/sql/calcite/WX1.java | 2 +- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java index b1934b57d7fb..34189e28df13 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java @@ -144,6 +144,7 @@ public void testHttpExtern() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -173,6 +174,7 @@ public void testHttpFunction() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -203,6 +205,7 @@ public void testHttpFunctionWithInputsourceSecurity() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -245,6 +248,7 @@ public void testHttpExternByName() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -275,6 +279,7 @@ public void testHttpFn() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -327,6 +332,7 @@ public void testHttpFn2() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "timestamp_parse(\"timestamp\",null,'UTC')", ColumnType.LONG)) .columns("v0", "isRobot") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .build() ) .verify(); @@ -408,6 +414,7 @@ public void testHttpFnWithParameters() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -454,6 +461,7 @@ public void testHttpJson() .dataSource(httpDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z", "a", "b", "c", "d") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.ofComplex("json"), ColumnType.ofArray(ColumnType.STRING), ColumnType.ofArray(ColumnType.LONG), ColumnType.ofArray(ColumnType.FLOAT), ColumnType.ofArray(ColumnType.DOUBLE)) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -476,6 +484,7 @@ public void testInlineExtern() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -544,6 +553,7 @@ public void testInlineExternWithExtend() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -572,6 +582,7 @@ public void testInlineFn() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -595,6 +606,7 @@ public void testLocalExtern() .dataSource(localDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -623,6 +635,7 @@ public void testLocalFilesFn() .dataSource(localDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -651,6 +664,7 @@ public void testLocalFnOmitExtend() .dataSource(localDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -681,6 +695,7 @@ public void testLocalFnWithAlias() .dataSource(localDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -711,6 +726,7 @@ public void testLocalFnNotNull() .dataSource(localDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 073accad6e5b..5b353c87c60c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -459,11 +459,9 @@ private void verifyQuery(QueryResults queryResults) ".columnTypes(" ); for (ColumnType query : scanQuery2.getColumnTypes()) { - if (query.getComplexTypeName() != null) { - sv.append("ColumnType.ofComplex(\"" + query.getComplexTypeName() + "\"), "); - } else { - sv.append("ColumnType." + query + ", "); - } + String typeString = typeStringFor(query); + sv.append(typeString); + sv.append(", "); } int l = sv.length(); sv.replace(l - 2, l, ")"); @@ -494,6 +492,18 @@ private void verifyQuery(QueryResults queryResults) } } } + + private String typeStringFor(ColumnType query) + { + if(query.isArray()) { + return String.format("ColumnType.ofArray(ColumnType.%s)", query.getElementType()); + } + if (query.getComplexTypeName() != null) { + return "ColumnType.ofComplex(\"" + query.getComplexTypeName() + "\")"; + } else { + return ("ColumnType." + query); + } + } } /** diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index f0ad59ed044f..a5d351fb4419 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteSelectQueryTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From f9c6d1f1977e75529d6a4c5150ed6b0edb9e99c5 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:46:47 +0000 Subject: [PATCH 37/60] fix onemore --- .../sql/calcite/CalciteReplaceDmlTest.java | 17 +++++++++++++++++ .../java/org/apache/druid/sql/calcite/WX1.java | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java index 7d788e77034e..1e544cfda28e 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java @@ -92,6 +92,7 @@ public void testReplaceFromTableWithReplaceAll() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -111,6 +112,7 @@ public void testReplaceFromTableWithDeleteWhereClause() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.DAY), @@ -138,6 +140,7 @@ public void testReplaceFromTableWithTimeZoneInQueryContext() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.DAY), @@ -163,6 +166,7 @@ public void testReplaceFromTableWithIntervalLargerThanOneGranularity() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -189,6 +193,7 @@ public void testReplaceFromTableWithComplexDeleteWhereClause() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -214,6 +219,7 @@ public void testReplaceFromTableWithBetweenClause() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context( addReplaceTimeChunkToQueryContext( queryContextWithGranularity(Granularities.MONTH), @@ -342,6 +348,7 @@ public void testReplaceFromView() .virtualColumns(expressionVirtualColumn("v0", "substring(\"dim1\", 0, 1)", ColumnType.STRING)) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("v0") + .columnTypes(ColumnType.STRING) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -360,6 +367,7 @@ public void testReplaceIntoQualifiedTable() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -383,6 +391,7 @@ public void testReplaceContainingWithList() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim3") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -524,6 +533,7 @@ public void testReplaceFromExternal() .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) @@ -549,6 +559,7 @@ public void testReplaceWithPartitionedByAndLimitOffset() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING) .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .limit(10) .offset(20) @@ -583,6 +594,7 @@ public void testReplaceWithClusteredBy() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "v0", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.STRING) .virtualColumns(expressionVirtualColumn("v0", "floor(\"m1\")", ColumnType.FLOAT)) .orderBy( ImmutableList.of( @@ -637,6 +649,7 @@ public void testPartitionedBySupportedGranularityLiteralClauses() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(queryContext) .build() ) @@ -686,6 +699,7 @@ public void testExplainReplaceFromExternal() throws IOException .dataSource(externalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("x", "y", "z") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context( queryJsonMapper.readValue( "{\"defaultTimeout\":300000,\"maxScatterGatherBytes\":9223372036854775807,\"sqlCurrentTimestamp\":\"2000-01-01T00:00:00Z\",\"sqlInsertSegmentGranularity\":\"{\\\"type\\\":\\\"all\\\"}\",\"sqlQueryId\":\"dummy\",\"sqlReplaceTimeChunks\":\"all\",\"vectorize\":\"false\",\"vectorizeVirtualColumns\":\"false\"}", @@ -758,6 +772,7 @@ public void testExplainReplaceTimeChunksWithPartitioningAndClustering() throws I .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .orderBy(ImmutableList.of(OrderBy.ascending("dim1"))) .columnTypes(LONG, STRING, STRING, STRING, LONG, FLOAT, DOUBLE, ofComplex("hyperUnique")) .context( @@ -836,6 +851,7 @@ public void testExplainReplaceWithLimitAndClusteredByOrdinals() throws IOExcepti .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .limit(10) .orderBy( ImmutableList.of( @@ -1013,6 +1029,7 @@ public void testReplaceFromExternalProjectSort() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat(\"x\",\"y\")", ColumnType.STRING)) .columns("v0", "z") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .context(REPLACE_ALL_TIME_CHUNKS) .build() ) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index a5d351fb4419..7b57be76a761 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/IngestTableFunctionTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); @@ -108,6 +108,7 @@ private static String getTypeForColName(String colName) return "ColumnType.DOUBLE"; case "unique_dim1": return "ColumnType.ofComplex(\"hyperUnique\")"; + case "z": case "cnt": case "__time": return "ColumnType.LONG"; From 0c82c61b0dccef0e8d922b8892a1d5a875a85463 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:56:15 +0000 Subject: [PATCH 38/60] fix onemore --- .../CalciteMultiValueStringQueryTest.java | 19 +++++++++++++++++++ .../calcite/CalciteTimeBoundaryQueryTest.java | 1 + .../org/apache/druid/sql/calcite/WX1.java | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java index 4ce75b6270d3..8c76d6f9da6b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java @@ -193,6 +193,7 @@ public void testMultiValueStringWorksLikeStringScan() .eternityInterval() .virtualColumns(expressionVirtualColumn("v0", "concat(\"dim3\",'foo')", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -220,6 +221,7 @@ public void testMultiValueStringWorksLikeStringSelfConcatScan() .eternityInterval() .virtualColumns(expressionVirtualColumn("v0", "concat(\"dim3\",'-lol-',\"dim3\")", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -248,6 +250,7 @@ public void testMultiValueStringWorksLikeStringScanWithFilter() .virtualColumns(expressionVirtualColumn("v0", "concat(\"dim3\",'','foo')", ColumnType.STRING)) .filters(equality("v0", "bfoo", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -271,6 +274,7 @@ public void testMultiValueStringOverlapFilter() .eternityInterval() .filters(in("dim3", ImmutableList.of("a", "b"))) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -296,6 +300,7 @@ public void testMultiValueStringOverlapFilterNull() NullHandling.sqlCompatible() ? NullFilter.forColumn("dim3") : selector("dim3", null) ) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -325,6 +330,7 @@ public void testMultiValueStringOverlapFilterNonLiteral() .eternityInterval() .filters(expressionFilter("array_overlap(mv_harmonize_nulls(\"dim3\"),array(\"dim2\"))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -353,6 +359,7 @@ public void testMultiValueStringContainsFilter() ) ) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -377,6 +384,7 @@ public void testMultiValueStringContainsFilterNull() NullHandling.sqlCompatible() ? NullFilter.forColumn("dim3") : selector("dim3", null) ) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -406,6 +414,7 @@ public void testMultiValueStringContainsArrayOfOneElement() .eternityInterval() .filters(equality("dim3", "a", ColumnType.STRING)) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -428,6 +437,7 @@ public void testMultiValueStringContainsArrayOfNonLiteral() .eternityInterval() .filters(expressionFilter("array_contains(mv_harmonize_nulls(\"dim3\"),array(\"dim2\"))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -451,6 +461,7 @@ public void testMultiValueStringSlice() .eternityInterval() .virtualColumns(expressionVirtualColumn("v0", "array_slice(\"dim3\",1)", ColumnType.STRING)) .columns(ImmutableList.of("v0")) + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1121,6 +1132,7 @@ public void testSelectAndFilterByStringToMV() .filters(expressionFilter( "array_contains(string_to_array(concat(array_to_string(\"dim3\",','),',d'),','),'d')")) .columns("v0") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ) @@ -1330,6 +1342,7 @@ public void testMultiValueListFilterNonLiteral() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1417,6 +1430,7 @@ public void testMultiValueListFilterDenyNonLiteral() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -2159,6 +2173,7 @@ public void testMultiValueStringOverlapFilterCoalesceNvl() .filters(expressionFilter( "array_overlap(nvl(mv_to_array(\"dim3\"),array('other')),array('a','b','other'))")) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -2205,6 +2220,7 @@ public void testMultiValueStringOverlapFilterCoalesceSingleValue() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -2258,6 +2274,7 @@ public void testMultiValueStringOverlapFilterCoalesceSingleValueOtherColumn() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -2329,6 +2346,7 @@ public void testMvContainsFilterWithExtractionFn() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT); @@ -2368,6 +2386,7 @@ public void testMvContainsSelectColumns() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.LONG) .virtualColumns( expressionVirtualColumn("v0", "array_contains(mv_harmonize_nulls(\"dim3\"),array('a','b'))", ColumnType.LONG), expressionVirtualColumn("v1", "array_overlap(mv_harmonize_nulls(\"dim3\"),array('a','b'))", ColumnType.LONG) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTimeBoundaryQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTimeBoundaryQueryTest.java index 75b786d1f189..e555ab65a96c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTimeBoundaryQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteTimeBoundaryQueryTest.java @@ -220,6 +220,7 @@ public void testMaxTimeQueryWithJoin() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cnt") + .columnTypes(ColumnType.LONG) .context(context) .build() ), diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 7b57be76a761..a14a688618a1 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteReplaceDmlTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 15e47126edae11f90738a420ff38270cc09e7f43 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 17:57:14 +0000 Subject: [PATCH 39/60] fix onemore --- .../org/apache/druid/sql/calcite/CalciteScanSignatureTest.java | 2 ++ sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteScanSignatureTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteScanSignatureTest.java index 80a9dde9b4c9..f4562190cde4 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteScanSignatureTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteScanSignatureTest.java @@ -65,6 +65,7 @@ public void testScanSignature() ColumnType.STRING )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(context) .build() @@ -91,6 +92,7 @@ public void testScanSignatureWithDimAsValuePrimitiveByteArr() .dataSource(CalciteTests.DATASOURCE2) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.LONG) .virtualColumns(expressionVirtualColumn( "v0", "CAST(\"dim1\", 'LONG')", diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index a14a688618a1..7154d914b1eb 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,7 +33,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteMultiValueStringQueryTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteScanSignatureTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 89e36dc03c10fc24363509a86f18338fd9555e0d Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Thu, 7 Nov 2024 19:09:20 +0000 Subject: [PATCH 40/60] fix onemore --- .../msq/sql/resources/SqlMSQStatementResourcePostTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/sql/resources/SqlMSQStatementResourcePostTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/sql/resources/SqlMSQStatementResourcePostTest.java index 656086cef434..302a9951cc83 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/sql/resources/SqlMSQStatementResourcePostTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/sql/resources/SqlMSQStatementResourcePostTest.java @@ -300,7 +300,7 @@ public void testExplain() throws IOException ), SqlStatementResourceTest.makeOkRequest()); Assert.assertEquals( - "{PLAN=[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"cnt\",\"dim1\",\"dim2\",\"dim3\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"__resultFormat\":\"object\",\"executionMode\":\"ASYNC\",\"scanSignature\":\"[{\\\"name\\\":\\\"__time\\\",\\\"type\\\":\\\"LONG\\\"},{\\\"name\\\":\\\"cnt\\\",\\\"type\\\":\\\"LONG\\\"},{\\\"name\\\":\\\"dim1\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"dim2\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"dim3\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"m1\\\",\\\"type\\\":\\\"FLOAT\\\"},{\\\"name\\\":\\\"m2\\\",\\\"type\\\":\\\"DOUBLE\\\"},{\\\"name\\\":\\\"unique_dim1\\\",\\\"type\\\":\\\"COMPLEX\\\"}]\",\"sqlQueryId\":\"queryId\"},\"columnTypes\":[\"LONG\",\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}], RESOURCES=[{\"name\":\"foo\",\"type\":\"DATASOURCE\"}], ATTRIBUTES={\"statementType\":\"SELECT\"}}", + "{PLAN=[{\"query\":{\"queryType\":\"scan\",\"dataSource\":{\"type\":\"table\",\"name\":\"foo\"},\"intervals\":{\"type\":\"intervals\",\"intervals\":[\"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z\"]},\"resultFormat\":\"compactedList\",\"columns\":[\"__time\",\"dim1\",\"dim2\",\"dim3\",\"cnt\",\"m1\",\"m2\",\"unique_dim1\"],\"context\":{\"__resultFormat\":\"object\",\"executionMode\":\"ASYNC\",\"scanSignature\":\"[{\\\"name\\\":\\\"__time\\\",\\\"type\\\":\\\"LONG\\\"},{\\\"name\\\":\\\"dim1\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"dim2\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"dim3\\\",\\\"type\\\":\\\"STRING\\\"},{\\\"name\\\":\\\"cnt\\\",\\\"type\\\":\\\"LONG\\\"},{\\\"name\\\":\\\"m1\\\",\\\"type\\\":\\\"FLOAT\\\"},{\\\"name\\\":\\\"m2\\\",\\\"type\\\":\\\"DOUBLE\\\"},{\\\"name\\\":\\\"unique_dim1\\\",\\\"type\\\":\\\"COMPLEX\\\"}]\",\"sqlQueryId\":\"queryId\"},\"columnTypes\":[\"LONG\",\"STRING\",\"STRING\",\"STRING\",\"LONG\",\"FLOAT\",\"DOUBLE\",\"COMPLEX\"],\"granularity\":{\"type\":\"all\"},\"legacy\":false},\"signature\":[{\"name\":\"__time\",\"type\":\"LONG\"},{\"name\":\"dim1\",\"type\":\"STRING\"},{\"name\":\"dim2\",\"type\":\"STRING\"},{\"name\":\"dim3\",\"type\":\"STRING\"},{\"name\":\"cnt\",\"type\":\"LONG\"},{\"name\":\"m1\",\"type\":\"FLOAT\"},{\"name\":\"m2\",\"type\":\"DOUBLE\"},{\"name\":\"unique_dim1\",\"type\":\"COMPLEX\"}],\"columnMappings\":[{\"queryColumn\":\"__time\",\"outputColumn\":\"__time\"},{\"queryColumn\":\"dim1\",\"outputColumn\":\"dim1\"},{\"queryColumn\":\"dim2\",\"outputColumn\":\"dim2\"},{\"queryColumn\":\"dim3\",\"outputColumn\":\"dim3\"},{\"queryColumn\":\"cnt\",\"outputColumn\":\"cnt\"},{\"queryColumn\":\"m1\",\"outputColumn\":\"m1\"},{\"queryColumn\":\"m2\",\"outputColumn\":\"m2\"},{\"queryColumn\":\"unique_dim1\",\"outputColumn\":\"unique_dim1\"}]}], RESOURCES=[{\"name\":\"foo\",\"type\":\"DATASOURCE\"}], ATTRIBUTES={\"statementType\":\"SELECT\"}}", String.valueOf(SqlStatementResourceTest.getResultRowsFromResponse(response).get(0)) ); } From 0c61433dd6056b214f44f40545b74867933c60a6 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 08:53:52 +0000 Subject: [PATCH 41/60] update comment --- .../main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java b/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java index 77f44fb3ec30..4470ebde361b 100644 --- a/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java +++ b/sql/src/main/java/org/apache/druid/sql/calcite/rel/DruidQuery.java @@ -1672,7 +1672,7 @@ private ScanQuery toScanQuery(final boolean considerSorting) } } - // Compute the list of columns to select, sorted and deduped. + // Deduplicate column list final Set scanColumns = new LinkedHashSet<>(outputRowSignature.getColumnNames()); orderByColumns.forEach(column -> scanColumns.add(column.getColumnName())); From 436dc35b2a4bf4bee386599198a4e8d079f99700 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 10:14:23 +0000 Subject: [PATCH 42/60] fix some --- .../apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java | 1 + .../java/org/apache/druid/sql/calcite/CalciteExportTest.java | 5 +++++ sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java index 2acfffad0727..bcb7759c981f 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCorrelatedQueryTest.java @@ -289,6 +289,7 @@ public void testCorrelatedSubqueryWithLeftFilter_leftDirectAccessDisabled(Map Date: Fri, 8 Nov 2024 10:16:38 +0000 Subject: [PATCH 43/60] remove immutablellist --- .../sql/calcite/CalciteArraysQueryTest.java | 128 +++++++++--------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java index 4310a48b632a..1442a5305468 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java @@ -1470,7 +1470,7 @@ public void testArraySlice() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array_slice(\"dim3\",1)", ColumnType.STRING_ARRAY)) - .columns(ImmutableList.of("v0")) + .columns("v0") .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3917,9 +3917,7 @@ public void testUnnestInline() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of( - "EXPR$0" - )) + .columns("EXPR$0") .build() ), ImmutableList.of( @@ -3978,7 +3976,7 @@ public void testUnnest() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), useDefault ? @@ -4021,7 +4019,7 @@ public void testUnnestArrayColumnsString() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4068,7 +4066,7 @@ public void testUnnestArrayColumnsStringThenFunction() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "concat(\"j0.unnest\",'.txt')", ColumnType.STRING)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0")) + .columns("v0") .build() ), ImmutableList.of( @@ -4114,7 +4112,7 @@ public void testUnnestArrayColumnsStringNulls() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4159,7 +4157,7 @@ public void testUnnestArrayColumnsLong() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4211,7 +4209,7 @@ public void testUnnestArrayColumnsLongNulls() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4259,7 +4257,7 @@ public void testUnnestArrayColumnsDouble() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4311,7 +4309,7 @@ public void testUnnestArrayColumnsDoubleNulls() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -4389,7 +4387,7 @@ public void testUnnestTwice() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dim1", "v0", "v1", "j0.unnest", "_j0.unnest")) + .columns("dim1", "v0", "v1", "j0.unnest", "_j0.unnest") .build() ), NullHandling.replaceWithDefault() ? @@ -4452,7 +4450,7 @@ public void testUnnestTwiceArrayColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("arrayStringNulls", "arrayLongNulls", "j0.unnest", "_j0.unnest")) + .columns("arrayStringNulls", "arrayLongNulls", "j0.unnest", "_j0.unnest") .build() ), ImmutableList.of( @@ -4547,7 +4545,7 @@ public void testUnnestTwiceWithFiltersAndExpressions() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dim1", "v0", "v1", "j0.unnest", "v2")) + .columns("dim1", "v0", "v1", "j0.unnest", "v2") .build() ), ImmutableList.of( @@ -4601,7 +4599,7 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestCol() "'Baz'", ColumnType.STRING )) - .columns(ImmutableList.of("dimZipf", "v0", "_j0.unnest", "__j0.unnest")) + .columns("dimZipf", "v0", "_j0.unnest", "__j0.unnest") .build() ); testQuery( @@ -4699,7 +4697,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumns() ColumnType.STRING )) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dimZipf", "v0", "_j0.unnest", "__j0.unnest")) + .columns("dimZipf", "v0", "_j0.unnest", "__j0.unnest") .build() ); testQuery( @@ -4766,7 +4764,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumns() expressionVirtualColumn("v1", "1", ColumnType.LONG) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "v1", "_j0.unnest", "__j0.unnest")) + .columns("v0", "v1", "_j0.unnest", "__j0.unnest") .build() ); testQuery( @@ -4824,7 +4822,7 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestColumnsORCombinations() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dimZipf", "j0.unnest", "_j0.unnest", "__j0.unnest")) + .columns("dimZipf", "j0.unnest", "_j0.unnest", "__j0.unnest") .build() ); testQuery( @@ -4901,7 +4899,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumnsOrFil expressionVirtualColumn("v0", "array('a','b')", ColumnType.STRING_ARRAY) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "j0.unnest", "_j0.unnest", "__j0.unnest")) + .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") .build() ); testQuery( @@ -5133,7 +5131,7 @@ public void testUnnestWithLimit() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .limit(3) .build() ), @@ -5162,7 +5160,7 @@ public void testUnnestFirstQueryOnSelect() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), useDefault ? @@ -5218,7 +5216,7 @@ public void testUnnestVirtualWithColumns1() equality("j0.unnest", "b", ColumnType.STRING) )) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "m1")) + .columns("j0.unnest", "m1") .build()), ImmutableList.of(new Object[]{"a", 1.0f}) ); @@ -5249,7 +5247,7 @@ public void testUnnestVirtualWithColumns2() ) )) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "m1")) + .columns("j0.unnest", "m1") .build()), ImmutableList.of( new Object[]{"a", 1.0f}, @@ -5278,7 +5276,7 @@ public void testUnnestWithFilters() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5314,7 +5312,7 @@ public void testUnnestWithFiltersWithExpressionInInnerQuery() )) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "j0.unnest")) + .columns("v0", "j0.unnest") .build() ), ImmutableList.of( @@ -5348,7 +5346,7 @@ public void testUnnestWithInFiltersWithExpressionInInnerQuery() ColumnType.LONG)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "j0.unnest")) + .columns("v0", "j0.unnest") .build() ), ImmutableList.of( @@ -5388,7 +5386,7 @@ public void testUnnestWithFiltersInnerLimit() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), NullHandling.replaceWithDefault() ? @@ -5431,7 +5429,7 @@ public void testUnnestWithFiltersInsideAndOutside() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5471,7 +5469,7 @@ public void testUnnestWithFiltersInsideAndOutside1() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5512,7 +5510,7 @@ public void testUnnestWithFiltersOutside() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5542,7 +5540,7 @@ public void testUnnestWithInFilters() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5571,7 +5569,7 @@ public void testUnnestVirtualWithColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5681,7 +5679,7 @@ public void testUnnestWithJoinOnTheLeft() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("_j0.unnest")) + .columns("_j0.unnest") .build() ), useDefault ? @@ -5737,7 +5735,7 @@ public void testUnnestWithConstant() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.EXPR$0")) + .columns("j0.EXPR$0") .build() ), ImmutableList.of( @@ -5781,7 +5779,7 @@ public void testUnnestWithSQLFunctionOnUnnestedColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns(expressionVirtualColumn("v0", "strlen(\"j0.unnest\")", ColumnType.LONG)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0")) + .columns("v0") .build() ), useDefault ? @@ -5827,7 +5825,7 @@ public void testUnnestWithINFiltersWithLeftRewrite() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5854,7 +5852,7 @@ public void testUnnestWithINFiltersWithNoLeftRewrite() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5884,7 +5882,7 @@ public void testUnnestWithInvalidINFiltersOnUnnestedColumn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of() @@ -5908,7 +5906,7 @@ public void testUnnestWithNotFiltersOnUnnestedColumn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), useDefault ? @@ -5947,7 +5945,7 @@ public void testUnnestWithSelectorFiltersOnSelectedColumn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -5975,7 +5973,7 @@ public void testUnnestWithSelectorFiltersOnVirtualColumn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6001,7 +5999,7 @@ public void testUnnestWithSelectorFiltersOnVirtualStringColumn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6036,7 +6034,7 @@ public void testUnnestWithMultipleAndFiltersOnSelectedColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6068,7 +6066,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedColumns() range("m1", ColumnType.LONG, null, 2L, false, true) ) ) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6095,7 +6093,7 @@ public void testUnnestWithMultipleAndFiltersOnSelectedUnnestedColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6122,7 +6120,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6153,7 +6151,7 @@ public void testUnnestWithMultipleOrFiltersOnVariationsOfUnnestedColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), useDefault ? @@ -6200,7 +6198,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedNonUnnestedColumns() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6232,7 +6230,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedVirtualColumns() range("m1", ColumnType.LONG, null, 2L, false, true) ) ) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6267,7 +6265,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumnsAndOnOriginalColumn( ) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6300,7 +6298,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumnsAndOnOriginalColumnD ) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("dim3", "j0.unnest")) + .columns("dim3", "j0.unnest") .build() ), ImmutableList.of( @@ -6593,7 +6591,7 @@ public void testUnnestVirtualWithColumnsAndNullIf() ) ) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest", "m2")) + .columns("j0.unnest", "m2") .build() ), ImmutableList.of( @@ -6633,7 +6631,7 @@ public void testUnnestWithTimeFilterOnly() .intervals(querySegmentSpec(Intervals.of("2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6664,7 +6662,7 @@ public void testUnnestWithTimeFilterOnlyArrayColumn() .intervals(querySegmentSpec(Intervals.of("2023-01-02T00:00:00.000Z/2023-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6707,7 +6705,7 @@ public void testUnnestWithTimeFilterAndAnotherFilter() .intervals(querySegmentSpec(Intervals.of("2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6741,7 +6739,7 @@ public void testUnnestWithTimeFilterOrAnotherFilter() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6776,7 +6774,7 @@ public void testUnnestWithTimeFilterOnlyNested() .intervals(querySegmentSpec(Intervals.of("2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("_j0.unnest")) + .columns("_j0.unnest") .build() ), ImmutableList.of( @@ -6819,7 +6817,7 @@ public void testUnnestWithTimeFilterOnlyNestedAndNestedAgain() .intervals(querySegmentSpec(Intervals.of("2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("__j0.unnest")) + .columns("__j0.unnest") .build() ), ImmutableList.of( @@ -6880,7 +6878,7 @@ public void testUnnestWithTimeFilterInsideSubquery() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -6929,7 +6927,7 @@ public void testUnnestWithTimeFilterInsideSubqueryArrayColumns() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") .build() ), ImmutableList.of( @@ -7010,7 +7008,7 @@ public void testUnnestWithFilterAndUnnestNestedBackToBack() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns(expressionVirtualColumn("v0", "2.0", ColumnType.FLOAT)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "j0.unnest", "_j0.unnest", "__j0.unnest")) + .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") .build() ), ImmutableList.of( @@ -7041,7 +7039,7 @@ public void testUnnestWithLookup() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .virtualColumns(expressionVirtualColumn("v0", "'a'", ColumnType.STRING)) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0", "v", "j0.unnest")) + .columns("v0", "v", "j0.unnest") .build() ), ImmutableList.of( @@ -7221,7 +7219,7 @@ public void testUnnestExtractionFn() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0")) + .columns("v0") .build() ), useDefault ? @@ -7260,7 +7258,7 @@ public void testUnnestExtractionFnNull() .intervals(querySegmentSpec(Filtration.eternity())) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) - .columns(ImmutableList.of("v0")) + .columns("v0") .build() ), ImmutableList.of( From efc97cede624f706abd2be77d94830f662767d88 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 10:22:11 +0000 Subject: [PATCH 44/60] 40 --- .../sql/calcite/CalciteArraysQueryTest.java | 103 ++++++++++++++++++ .../org/apache/druid/sql/calcite/WX1.java | 7 +- 2 files changed, 109 insertions(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java index 1442a5305468..a96b03f370e7 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java @@ -130,6 +130,7 @@ public void testSelectConstantArrayExpressionFromTable() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(1,2)", ColumnType.LONG_ARRAY)) .columns("v0", "dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -215,6 +216,7 @@ public void testSelectNonConstantArrayExpressionFromTable() ColumnType.STRING_ARRAY )) .columns("v0", "dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -241,6 +243,7 @@ public void testSelectNonConstantArrayExpressionFromTableForMultival() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(concat(\"dim3\",'word'),'up')", ColumnType.STRING_ARRAY)) .columns("v0", "dim1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -701,6 +704,7 @@ public void testArrayOverlapFilter() .intervals(querySegmentSpec(Filtration.eternity())) .filters(in("dim3", ImmutableList.of("a", "b"))) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -729,6 +733,7 @@ public void testArrayOverlapFilterStringArrayColumn() ) ) .columns("arrayStringNulls") + .columnTypes(ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -760,6 +765,7 @@ public void testArrayOverlapFilterLongArrayColumn() ) ) .columns("arrayLongNulls") + .columnTypes(ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -791,6 +797,7 @@ public void testArrayOverlapFilterDoubleArrayColumn() ) ) .columns("arrayDoubleNulls") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -819,6 +826,7 @@ public void testArrayOverlapFilterWithExtractionFn() new InDimFilter("dim3", ImmutableList.of("a", "b"), new SubstringDimExtractionFn(0, 1)) ) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -842,6 +850,7 @@ public void testArrayOverlapFilterNonLiteral() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"dim3\",array(\"dim2\"))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -864,6 +873,7 @@ public void testArrayOverlapFilterArrayStringColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayStringNulls\",\"arrayString\")")) .columns("arrayStringNulls", "arrayString") + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -890,6 +900,7 @@ public void testArrayOverlapFilterArrayLongColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayLongNulls\",\"arrayLong\")")) .columns("arrayLongNulls", "arrayLong") + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -916,6 +927,7 @@ public void testArrayOverlapFilterArrayDoubleColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayDoubleNulls\",\"arrayDouble\")")) .columns("arrayDoubleNulls", "arrayDouble") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -938,6 +950,7 @@ public void testArrayOverlapFilterWithDynamicParameter() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(array(1.0,1.7,null),array(\"d1\"))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT); @@ -980,6 +993,7 @@ public void testArrayContainsFilter() ) ) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1008,6 +1022,7 @@ public void testArrayContainsFilterArrayStringColumn() ) .columns("arrayStringNulls") + .columnTypes(ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1037,6 +1052,7 @@ public void testArrayContainsFilterArrayLongColumn() ) ) .columns("arrayLongNulls") + .columnTypes(ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1065,6 +1081,7 @@ public void testArrayContainsFilterArrayDoubleColumn() ) ) .columns("arrayDoubleNulls") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1085,6 +1102,7 @@ public void testArrayContainsFilterWithExtractionFn() .dataSource(CalciteTests.DATASOURCE3) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT); @@ -1125,6 +1143,7 @@ public void testArrayContainsArrayOfOneElement() .intervals(querySegmentSpec(Filtration.eternity())) .filters(equality("dim3", "a", ColumnType.STRING)) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1148,6 +1167,7 @@ public void testArrayContainsArrayOfNonLiteral() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_contains(\"dim3\",array(\"dim2\"))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) @@ -1172,6 +1192,7 @@ public void testArrayContainsFilterArrayStringColumns() expressionFilter("array_contains(\"arrayStringNulls\",\"arrayString\")") ) .columns("arrayStringNulls", "arrayString") + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1193,6 +1214,7 @@ public void testArrayContainsArrayStringColumns() .dataSource(CalciteTests.ARRAYS_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .virtualColumns( expressionVirtualColumn("v0", "array_contains(\"arrayStringNulls\",array('a','b'))", ColumnType.LONG), expressionVirtualColumn("v1", "array_contains(\"arrayStringNulls\",\"arrayString\")", ColumnType.LONG) @@ -1225,6 +1247,7 @@ public void testArrayContainsFilterArrayLongColumns() expressionFilter("array_contains(\"arrayLong\",\"arrayLongNulls\")") ) .columns("arrayLong", "arrayLongNulls") + .columnTypes(ColumnType.STRING, ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1252,6 +1275,7 @@ public void testArrayContainsFilterArrayDoubleColumns() expressionFilter("array_contains(\"arrayDoubleNulls\",\"arrayDouble\")") ) .columns("arrayDoubleNulls", "arrayDouble") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1277,6 +1301,7 @@ public void testArrayContainsConstantNull() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1290,6 +1315,7 @@ public void testArrayContainsConstantNull() .virtualColumns(expressionVirtualColumn("v0", "0", ColumnType.LONG)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1308,6 +1334,7 @@ public void testArrayContainsFilterWithDynamicParameter() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_contains(array(1,null),array((\"d1\" > 1)))")) .columns("dim3") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT); @@ -1371,6 +1398,7 @@ public void testScalarInArrayFilter() ) ) .columns("dim2") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1394,6 +1422,7 @@ public void testNotScalarInArrayFilter() .intervals(querySegmentSpec(Filtration.eternity())) .filters(not(in("dim2", Arrays.asList("a", "d")))) .columns("dim2") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1441,6 +1470,7 @@ public void testArrayScalarInFilter_MVD() ) ) .columns("dim3", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1471,6 +1501,7 @@ public void testArraySlice() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array_slice(\"dim3\",1)", ColumnType.STRING_ARRAY)) .columns("v0") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -1502,6 +1533,7 @@ public void testArraySliceArrayColumns() expressionVirtualColumn("v2", "array_slice(\"arrayDoubleNulls\",1)", ColumnType.DOUBLE_ARRAY) ) .columns("v0", "v1", "v2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3458,6 +3490,7 @@ public void testArrayAggAsArrayFromJoin() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim4", "j0.a0", "v0") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3804,6 +3837,7 @@ public void testArrayAggArrayContainsSubquery() ) ) .columns("dim1", "dim2") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3918,6 +3952,7 @@ public void testUnnestInline() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("EXPR$0") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -3977,6 +4012,7 @@ public void testUnnest() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -4020,6 +4056,7 @@ public void testUnnestArrayColumnsString() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4067,6 +4104,7 @@ public void testUnnestArrayColumnsStringThenFunction() .virtualColumns(expressionVirtualColumn("v0", "concat(\"j0.unnest\",'.txt')", ColumnType.STRING)) .context(QUERY_CONTEXT_UNNEST) .columns("v0") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4113,6 +4151,7 @@ public void testUnnestArrayColumnsStringNulls() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4158,6 +4197,7 @@ public void testUnnestArrayColumnsLong() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4210,6 +4250,7 @@ public void testUnnestArrayColumnsLongNulls() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4258,6 +4299,7 @@ public void testUnnestArrayColumnsDouble() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4310,6 +4352,7 @@ public void testUnnestArrayColumnsDoubleNulls() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -4388,6 +4431,7 @@ public void testUnnestTwice() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("dim1", "v0", "v1", "j0.unnest", "_j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), NullHandling.replaceWithDefault() ? @@ -4451,6 +4495,7 @@ public void testUnnestTwiceArrayColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("arrayStringNulls", "arrayLongNulls", "j0.unnest", "_j0.unnest") + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -4546,6 +4591,7 @@ public void testUnnestTwiceWithFiltersAndExpressions() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("dim1", "v0", "v1", "j0.unnest", "v2") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -4600,6 +4646,7 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestCol() ColumnType.STRING )) .columns("dimZipf", "v0", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -4698,6 +4745,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumns() )) .context(QUERY_CONTEXT_UNNEST) .columns("dimZipf", "v0", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -4765,6 +4813,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumns() ) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "v1", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -4823,6 +4872,7 @@ public void testUnnestThriceWithFiltersOnDimAndUnnestColumnsORCombinations() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("dimZipf", "j0.unnest", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -4900,6 +4950,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumnsOrFil ) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -5132,6 +5183,7 @@ public void testUnnestWithLimit() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .limit(3) .build() ), @@ -5161,6 +5213,7 @@ public void testUnnestFirstQueryOnSelect() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -5217,6 +5270,7 @@ public void testUnnestVirtualWithColumns1() )) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .build()), ImmutableList.of(new Object[]{"a", 1.0f}) ); @@ -5248,6 +5302,7 @@ public void testUnnestVirtualWithColumns2() )) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .build()), ImmutableList.of( new Object[]{"a", 1.0f}, @@ -5277,6 +5332,7 @@ public void testUnnestWithFilters() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5313,6 +5369,7 @@ public void testUnnestWithFiltersWithExpressionInInnerQuery() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -5347,6 +5404,7 @@ public void testUnnestWithInFiltersWithExpressionInInnerQuery() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -5376,6 +5434,7 @@ public void testUnnestWithFiltersInnerLimit() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("dim3") + .columnTypes(ColumnType.STRING) .limit(2) .context(QUERY_CONTEXT_UNNEST) .build() @@ -5387,6 +5446,7 @@ public void testUnnestWithFiltersInnerLimit() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), NullHandling.replaceWithDefault() ? @@ -5430,6 +5490,7 @@ public void testUnnestWithFiltersInsideAndOutside() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5470,6 +5531,7 @@ public void testUnnestWithFiltersInsideAndOutside1() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5511,6 +5573,7 @@ public void testUnnestWithFiltersOutside() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5541,6 +5604,7 @@ public void testUnnestWithInFilters() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5570,6 +5634,7 @@ public void testUnnestVirtualWithColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5666,6 +5731,7 @@ public void testUnnestWithJoinOnTheLeft() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .filters(in("dim2", ImmutableList.of("a", "b", "ab", "abc"))) .columns("dim2") + .columnTypes(ColumnType.STRING) .context(QUERY_CONTEXT_UNNEST) .build() ), @@ -5680,6 +5746,7 @@ public void testUnnestWithJoinOnTheLeft() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("_j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -5736,6 +5803,7 @@ public void testUnnestWithConstant() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.EXPR$0") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5780,6 +5848,7 @@ public void testUnnestWithSQLFunctionOnUnnestedColumn() .virtualColumns(expressionVirtualColumn("v0", "strlen(\"j0.unnest\")", ColumnType.LONG)) .context(QUERY_CONTEXT_UNNEST) .columns("v0") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -5826,6 +5895,7 @@ public void testUnnestWithINFiltersWithLeftRewrite() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5853,6 +5923,7 @@ public void testUnnestWithINFiltersWithNoLeftRewrite() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5883,6 +5954,7 @@ public void testUnnestWithInvalidINFiltersOnUnnestedColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of() @@ -5907,6 +5979,7 @@ public void testUnnestWithNotFiltersOnUnnestedColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -5946,6 +6019,7 @@ public void testUnnestWithSelectorFiltersOnSelectedColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -5974,6 +6048,7 @@ public void testUnnestWithSelectorFiltersOnVirtualColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6000,6 +6075,7 @@ public void testUnnestWithSelectorFiltersOnVirtualStringColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6035,6 +6111,7 @@ public void testUnnestWithMultipleAndFiltersOnSelectedColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6067,6 +6144,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedColumns() ) ) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6094,6 +6172,7 @@ public void testUnnestWithMultipleAndFiltersOnSelectedUnnestedColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6121,6 +6200,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6152,6 +6232,7 @@ public void testUnnestWithMultipleOrFiltersOnVariationsOfUnnestedColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -6199,6 +6280,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedNonUnnestedColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6231,6 +6313,7 @@ public void testUnnestWithMultipleOrFiltersOnSelectedVirtualColumns() ) ) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6266,6 +6349,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumnsAndOnOriginalColumn( ) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6299,6 +6383,7 @@ public void testUnnestWithMultipleOrFiltersOnUnnestedColumnsAndOnOriginalColumnD ) .context(QUERY_CONTEXT_UNNEST) .columns("dim3", "j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -6592,6 +6677,7 @@ public void testUnnestVirtualWithColumnsAndNullIf() ) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest", "m2") + .columnTypes(ColumnType.STRING, ColumnType.DOUBLE) .build() ), ImmutableList.of( @@ -6632,6 +6718,7 @@ public void testUnnestWithTimeFilterOnly() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6663,6 +6750,7 @@ public void testUnnestWithTimeFilterOnlyArrayColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6706,6 +6794,7 @@ public void testUnnestWithTimeFilterAndAnotherFilter() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6740,6 +6829,7 @@ public void testUnnestWithTimeFilterOrAnotherFilter() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6775,6 +6865,7 @@ public void testUnnestWithTimeFilterOnlyNested() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("_j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6818,6 +6909,7 @@ public void testUnnestWithTimeFilterOnlyNestedAndNestedAgain() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("__j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6865,6 +6957,7 @@ public void testUnnestWithTimeFilterInsideSubquery() "2000-01-02T00:00:00.000Z/2000-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("m1", "j0.unnest") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING) .limit(2) .context(QUERY_CONTEXT_UNNEST) .build() @@ -6879,6 +6972,7 @@ public void testUnnestWithTimeFilterInsideSubquery() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -6916,6 +7010,7 @@ public void testUnnestWithTimeFilterInsideSubqueryArrayColumns() "2023-01-02T00:00:00.000Z/2023-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("arrayLongNulls", "j0.unnest") + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.STRING) .limit(2) .context(QUERY_CONTEXT_UNNEST) .build() @@ -6928,6 +7023,7 @@ public void testUnnestWithTimeFilterInsideSubqueryArrayColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -7009,6 +7105,7 @@ public void testUnnestWithFilterAndUnnestNestedBackToBack() .virtualColumns(expressionVirtualColumn("v0", "2.0", ColumnType.FLOAT)) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -7040,6 +7137,7 @@ public void testUnnestWithLookup() .virtualColumns(expressionVirtualColumn("v0", "'a'", ColumnType.STRING)) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "v", "j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -7096,6 +7194,7 @@ public void testUnnestWithGroupByOnExpression() ) .eternityInterval() .columns("d0", "j0.unnest") + .columnTypes(ColumnType.STRING, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -7220,6 +7319,7 @@ public void testUnnestExtractionFn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0") + .columnTypes(ColumnType.STRING) .build() ), useDefault ? @@ -7259,6 +7359,7 @@ public void testUnnestExtractionFnNull() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0") + .columnTypes(ColumnType.STRING) .build() ), ImmutableList.of( @@ -7288,6 +7389,7 @@ public void testBooleanConstExprArray() ColumnType.LONG_ARRAY )) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -7470,6 +7572,7 @@ public void testNullArray() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "(\"arrayLongNulls\" == array(null,null))", ColumnType.LONG)) .columns("v0") + .columnTypes(ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index f9d76ec21e0b..7a77f477996d 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -20,7 +20,6 @@ package org.apache.druid.sql.calcite; import org.apache.commons.lang3.StringUtils; - import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -97,6 +96,8 @@ private static String getTypeForColName(String colName) switch (colName) { case "j0.unnest": + case "_j0.unnest": + return "ColumnType.STRING"; case "nest": case "nester": return "ColumnType.ofComplex(\"json\")"; @@ -112,6 +113,10 @@ private static String getTypeForColName(String colName) case "cnt": case "__time": return "ColumnType.LONG"; + case "arrayStringNulls": + return "ColumnType.STRING_ARRAY"; + case "arrayLongNulls": + return "ColumnType.LONG_ARRAY"; default: return "ColumnType.STRING"; } From 42e4e22efd4b1c2d9bd08bda12dcfc8cb8084578 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 10:24:50 +0000 Subject: [PATCH 45/60] fiox --- .../sql/calcite/CalciteArraysQueryTest.java | 16 ++++++++-------- .../java/org/apache/druid/sql/calcite/WX1.java | 3 +++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java index a96b03f370e7..e921b01833f1 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java @@ -927,7 +927,7 @@ public void testArrayOverlapFilterArrayDoubleColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayDoubleNulls\",\"arrayDouble\")")) .columns("arrayDoubleNulls", "arrayDouble") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE_ARRAY, ColumnType.DOUBLE_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1081,7 +1081,7 @@ public void testArrayContainsFilterArrayDoubleColumn() ) ) .columns("arrayDoubleNulls") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1214,7 +1214,7 @@ public void testArrayContainsArrayStringColumns() .dataSource(CalciteTests.ARRAYS_DATASOURCE) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0", "v1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG) .virtualColumns( expressionVirtualColumn("v0", "array_contains(\"arrayStringNulls\",array('a','b'))", ColumnType.LONG), expressionVirtualColumn("v1", "array_contains(\"arrayStringNulls\",\"arrayString\")", ColumnType.LONG) @@ -1275,7 +1275,7 @@ public void testArrayContainsFilterArrayDoubleColumns() expressionFilter("array_contains(\"arrayDoubleNulls\",\"arrayDouble\")") ) .columns("arrayDoubleNulls", "arrayDouble") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE_ARRAY, ColumnType.DOUBLE_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1501,7 +1501,7 @@ public void testArraySlice() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array_slice(\"dim3\",1)", ColumnType.STRING_ARRAY)) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -4495,7 +4495,7 @@ public void testUnnestTwiceArrayColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("arrayStringNulls", "arrayLongNulls", "j0.unnest", "_j0.unnest") - .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.STRING, ColumnType.LONG) .build() ), ImmutableList.of( @@ -4813,7 +4813,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumns() ) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "v1", "_j0.unnest", "__j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.STRING, ColumnType.STRING) .build() ); testQuery( @@ -5803,7 +5803,7 @@ public void testUnnestWithConstant() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.EXPR$0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), ImmutableList.of( diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 7a77f477996d..1d9dc4d5df4a 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -117,6 +117,9 @@ private static String getTypeForColName(String colName) return "ColumnType.STRING_ARRAY"; case "arrayLongNulls": return "ColumnType.LONG_ARRAY"; + case "arrayDoubleNulls": + case "arrayDouble": + return "ColumnType.DOUBLE_ARRAY"; default: return "ColumnType.STRING"; } From c233381de09ed660ac443541828b6fc2a23be818 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 10:38:38 +0000 Subject: [PATCH 46/60] fix cases --- .../sql/calcite/CalciteArraysQueryTest.java | 159 +++++++++--------- .../druid/sql/calcite/QueryTestRunner.java | 3 +- .../org/apache/druid/sql/calcite/WX1.java | 1 + 3 files changed, 85 insertions(+), 78 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java index e921b01833f1..93b2fc526e41 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java @@ -130,7 +130,7 @@ public void testSelectConstantArrayExpressionFromTable() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(1,2)", ColumnType.LONG_ARRAY)) .columns("v0", "dim1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -216,7 +216,7 @@ public void testSelectNonConstantArrayExpressionFromTable() ColumnType.STRING_ARRAY )) .columns("v0", "dim1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -243,7 +243,7 @@ public void testSelectNonConstantArrayExpressionFromTableForMultival() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "array(concat(\"dim3\",'word'),'up')", ColumnType.STRING_ARRAY)) .columns("v0", "dim1") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -332,6 +332,31 @@ public void testSomeArrayFunctionsWithScanQuery() } ); } + RowSignature resultSignature = RowSignature.builder() + .add("dim1", ColumnType.STRING) + .add("dim2", ColumnType.STRING) + .add("dim3", ColumnType.STRING) + .add("l1", ColumnType.LONG) + .add("l2", ColumnType.LONG) + .add("d1", ColumnType.DOUBLE) + .add("d2", ColumnType.DOUBLE) + .add("EXPR$7", ColumnType.STRING_ARRAY) + .add("EXPR$8", ColumnType.LONG_ARRAY) + .add("EXPR$9", ColumnType.DOUBLE_ARRAY) + .add("EXPR$10", ColumnType.STRING_ARRAY) + .add("EXPR$11", ColumnType.STRING_ARRAY) + .add("EXPR$12", ColumnType.LONG_ARRAY) + .add("EXPR$13", ColumnType.LONG_ARRAY) + .add("EXPR$14", ColumnType.DOUBLE_ARRAY) + .add("EXPR$15", ColumnType.DOUBLE_ARRAY) + .add("EXPR$16", ColumnType.STRING_ARRAY) + .add("EXPR$17", ColumnType.LONG_ARRAY) + .add("EXPR$18", ColumnType.DOUBLE_ARRAY) + .add("EXPR$19", ColumnType.LONG) + .add("EXPR$20", ColumnType.DOUBLE) + .add("EXPR$21", ColumnType.LONG) + .add("EXPR$22", ColumnType.DOUBLE) + .build(); testQuery( "SELECT" + " dim1," @@ -411,37 +436,14 @@ public void testSomeArrayFunctionsWithScanQuery() "v14", "v15" ) + .columnTypes(resultSignature.getColumnTypes()) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) .build() ), expectedResults, - RowSignature.builder() - .add("dim1", ColumnType.STRING) - .add("dim2", ColumnType.STRING) - .add("dim3", ColumnType.STRING) - .add("l1", ColumnType.LONG) - .add("l2", ColumnType.LONG) - .add("d1", ColumnType.DOUBLE) - .add("d2", ColumnType.DOUBLE) - .add("EXPR$7", ColumnType.STRING_ARRAY) - .add("EXPR$8", ColumnType.LONG_ARRAY) - .add("EXPR$9", ColumnType.DOUBLE_ARRAY) - .add("EXPR$10", ColumnType.STRING_ARRAY) - .add("EXPR$11", ColumnType.STRING_ARRAY) - .add("EXPR$12", ColumnType.LONG_ARRAY) - .add("EXPR$13", ColumnType.LONG_ARRAY) - .add("EXPR$14", ColumnType.DOUBLE_ARRAY) - .add("EXPR$15", ColumnType.DOUBLE_ARRAY) - .add("EXPR$16", ColumnType.STRING_ARRAY) - .add("EXPR$17", ColumnType.LONG_ARRAY) - .add("EXPR$18", ColumnType.DOUBLE_ARRAY) - .add("EXPR$19", ColumnType.LONG) - .add("EXPR$20", ColumnType.DOUBLE) - .add("EXPR$21", ColumnType.LONG) - .add("EXPR$22", ColumnType.DOUBLE) - .build() + resultSignature ); } @@ -484,6 +486,26 @@ public void testSomeArrayFunctionsWithScanQueryArrayColumns() new Object[]{"[null,\"b\"]", null, "[999.0,null,5.5]", "[null,\"b\",\"foo\"]", "[\"foo\",null,\"b\"]", null, null, "[999.0,null,5.5,1.1]", "[2.2,999.0,null,5.5]", "[\"a\",\"b\",\"c\",null,\"b\"]", null, "[3.3,4.4,5.5,999.0,null,5.5]", null, null, 999.0D, null, null, 999.0D} ); } + RowSignature resultSignature = RowSignature.builder() + .add("arrayStringNulls", ColumnType.STRING_ARRAY) + .add("arrayLongNulls", ColumnType.LONG_ARRAY) + .add("arrayDoubleNulls", ColumnType.DOUBLE_ARRAY) + .add("EXPR$3", ColumnType.STRING_ARRAY) + .add("EXPR$4", ColumnType.STRING_ARRAY) + .add("EXPR$5", ColumnType.LONG_ARRAY) + .add("EXPR$6", ColumnType.LONG_ARRAY) + .add("EXPR$7", ColumnType.DOUBLE_ARRAY) + .add("EXPR$8", ColumnType.DOUBLE_ARRAY) + .add("EXPR$9", ColumnType.STRING_ARRAY) + .add("EXPR$10", ColumnType.LONG_ARRAY) + .add("EXPR$11", ColumnType.DOUBLE_ARRAY) + .add("EXPR$12", ColumnType.STRING) + .add("EXPR$13", ColumnType.LONG) + .add("EXPR$14", ColumnType.DOUBLE) + .add("EXPR$15", ColumnType.STRING) + .add("EXPR$16", ColumnType.LONG) + .add("EXPR$17", ColumnType.DOUBLE) + .build(); testQuery( "SELECT" + " arrayStringNulls," @@ -547,31 +569,13 @@ public void testSomeArrayFunctionsWithScanQueryArrayColumns() "v13", "v14" ) + .columnTypes(resultSignature.getColumnTypes()) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() ), expectedResults, - RowSignature.builder() - .add("arrayStringNulls", ColumnType.STRING_ARRAY) - .add("arrayLongNulls", ColumnType.LONG_ARRAY) - .add("arrayDoubleNulls", ColumnType.DOUBLE_ARRAY) - .add("EXPR$3", ColumnType.STRING_ARRAY) - .add("EXPR$4", ColumnType.STRING_ARRAY) - .add("EXPR$5", ColumnType.LONG_ARRAY) - .add("EXPR$6", ColumnType.LONG_ARRAY) - .add("EXPR$7", ColumnType.DOUBLE_ARRAY) - .add("EXPR$8", ColumnType.DOUBLE_ARRAY) - .add("EXPR$9", ColumnType.STRING_ARRAY) - .add("EXPR$10", ColumnType.LONG_ARRAY) - .add("EXPR$11", ColumnType.DOUBLE_ARRAY) - .add("EXPR$12", ColumnType.STRING) - .add("EXPR$13", ColumnType.LONG) - .add("EXPR$14", ColumnType.DOUBLE) - .add("EXPR$15", ColumnType.STRING) - .add("EXPR$16", ColumnType.LONG) - .add("EXPR$17", ColumnType.DOUBLE) - .build() + resultSignature ); } @@ -684,6 +688,7 @@ public void testSomeArrayFunctionsWithScanQueryNoStringify() "v10", "v11" ) + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.ofArray(ColumnType.STRING), ColumnType.ofArray(ColumnType.LONG), ColumnType.ofArray(ColumnType.DOUBLE), ColumnType.ofArray(ColumnType.STRING), ColumnType.ofArray(ColumnType.STRING), ColumnType.ofArray(ColumnType.LONG), ColumnType.ofArray(ColumnType.LONG), ColumnType.ofArray(ColumnType.DOUBLE), ColumnType.ofArray(ColumnType.DOUBLE), ColumnType.ofArray(ColumnType.STRING), ColumnType.ofArray(ColumnType.LONG), ColumnType.ofArray(ColumnType.DOUBLE)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) @@ -797,7 +802,7 @@ public void testArrayOverlapFilterDoubleArrayColumn() ) ) .columns("arrayDoubleNulls") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -873,7 +878,7 @@ public void testArrayOverlapFilterArrayStringColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayStringNulls\",\"arrayString\")")) .columns("arrayStringNulls", "arrayString") - .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -900,7 +905,7 @@ public void testArrayOverlapFilterArrayLongColumns() .intervals(querySegmentSpec(Filtration.eternity())) .filters(expressionFilter("array_overlap(\"arrayLongNulls\",\"arrayLong\")")) .columns("arrayLongNulls", "arrayLong") - .columnTypes(ColumnType.LONG_ARRAY, ColumnType.STRING) + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1192,7 +1197,7 @@ public void testArrayContainsFilterArrayStringColumns() expressionFilter("array_contains(\"arrayStringNulls\",\"arrayString\")") ) .columns("arrayStringNulls", "arrayString") - .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1247,7 +1252,7 @@ public void testArrayContainsFilterArrayLongColumns() expressionFilter("array_contains(\"arrayLong\",\"arrayLongNulls\")") ) .columns("arrayLong", "arrayLongNulls") - .columnTypes(ColumnType.STRING, ColumnType.LONG_ARRAY) + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(5) .context(QUERY_CONTEXT_DEFAULT) @@ -1301,7 +1306,7 @@ public void testArrayContainsConstantNull() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1315,7 +1320,7 @@ public void testArrayContainsConstantNull() .virtualColumns(expressionVirtualColumn("v0", "0", ColumnType.LONG)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -1533,7 +1538,7 @@ public void testArraySliceArrayColumns() expressionVirtualColumn("v2", "array_slice(\"arrayDoubleNulls\",1)", ColumnType.DOUBLE_ARRAY) ) .columns("v0", "v1", "v2") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG_ARRAY, ColumnType.DOUBLE_ARRAY) .context(QUERY_CONTEXT_NO_STRINGIFY_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3490,7 +3495,7 @@ public void testArrayAggAsArrayFromJoin() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim4", "j0.a0", "v0") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING, ColumnType.STRING_ARRAY, ColumnType.STRING) .context(QUERY_CONTEXT_DEFAULT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -3952,7 +3957,7 @@ public void testUnnestInline() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("EXPR$0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), ImmutableList.of( @@ -4197,7 +4202,7 @@ public void testUnnestArrayColumnsLong() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), ImmutableList.of( @@ -4250,7 +4255,7 @@ public void testUnnestArrayColumnsLongNulls() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), ImmutableList.of( @@ -4299,7 +4304,7 @@ public void testUnnestArrayColumnsDouble() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE) .build() ), ImmutableList.of( @@ -4352,7 +4357,7 @@ public void testUnnestArrayColumnsDoubleNulls() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.DOUBLE) .build() ), ImmutableList.of( @@ -4431,7 +4436,7 @@ public void testUnnestTwice() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("dim1", "v0", "v1", "j0.unnest", "_j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING, ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY, ColumnType.STRING, ColumnType.STRING) .build() ), NullHandling.replaceWithDefault() ? @@ -4591,7 +4596,7 @@ public void testUnnestTwiceWithFiltersAndExpressions() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("dim1", "v0", "v1", "j0.unnest", "v2") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING, ColumnType.STRING_ARRAY, ColumnType.STRING_ARRAY, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -4813,7 +4818,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumns() ) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "v1", "_j0.unnest", "__j0.unnest") - .columnTypes(ColumnType.LONG, ColumnType.LONG, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.STRING) .build() ); testQuery( @@ -4950,7 +4955,7 @@ public void testUnnestThriceWithFiltersOnDimAndAllUnnestColumnsArrayColumnsOrFil ) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.STRING_ARRAY, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.STRING) .build() ); testQuery( @@ -5369,7 +5374,7 @@ public void testUnnestWithFiltersWithExpressionInInnerQuery() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .build() ), ImmutableList.of( @@ -5404,7 +5409,7 @@ public void testUnnestWithInFiltersWithExpressionInInnerQuery() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG, ColumnType.STRING) .build() ), ImmutableList.of( @@ -5848,7 +5853,7 @@ public void testUnnestWithSQLFunctionOnUnnestedColumn() .virtualColumns(expressionVirtualColumn("v0", "strlen(\"j0.unnest\")", ColumnType.LONG)) .context(QUERY_CONTEXT_UNNEST) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), useDefault ? @@ -6048,7 +6053,7 @@ public void testUnnestWithSelectorFiltersOnVirtualColumn() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.FLOAT) .build() ), ImmutableList.of( @@ -6677,7 +6682,7 @@ public void testUnnestVirtualWithColumnsAndNullIf() ) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest", "m2") - .columnTypes(ColumnType.STRING, ColumnType.DOUBLE) + .columnTypes(ColumnType.FLOAT, ColumnType.DOUBLE) .build() ), ImmutableList.of( @@ -7010,7 +7015,7 @@ public void testUnnestWithTimeFilterInsideSubqueryArrayColumns() "2023-01-02T00:00:00.000Z/2023-01-03T00:10:00.001Z"))) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("arrayLongNulls", "j0.unnest") - .columnTypes(ColumnType.LONG_ARRAY, ColumnType.STRING) + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.LONG) .limit(2) .context(QUERY_CONTEXT_UNNEST) .build() @@ -7023,7 +7028,7 @@ public void testUnnestWithTimeFilterInsideSubqueryArrayColumns() .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_UNNEST) .columns("j0.unnest") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .build() ), ImmutableList.of( @@ -7105,7 +7110,7 @@ public void testUnnestWithFilterAndUnnestNestedBackToBack() .virtualColumns(expressionVirtualColumn("v0", "2.0", ColumnType.FLOAT)) .context(QUERY_CONTEXT_UNNEST) .columns("v0", "j0.unnest", "_j0.unnest", "__j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.FLOAT, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .build() ), ImmutableList.of( @@ -7194,7 +7199,7 @@ public void testUnnestWithGroupByOnExpression() ) .eternityInterval() .columns("d0", "j0.unnest") - .columnTypes(ColumnType.STRING, ColumnType.STRING) + .columnTypes(ColumnType.LONG_ARRAY, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -7389,7 +7394,7 @@ public void testBooleanConstExprArray() ColumnType.LONG_ARRAY )) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG_ARRAY) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) @@ -7572,7 +7577,7 @@ public void testNullArray() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "(\"arrayLongNulls\" == array(null,null))", ColumnType.LONG)) .columns("v0") - .columnTypes(ColumnType.STRING) + .columnTypes(ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .limit(1) .context(QUERY_CONTEXT_DEFAULT) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 5b353c87c60c..2bb884044a95 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -21,6 +21,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; @@ -467,7 +468,7 @@ private void verifyQuery(QueryResults queryResults) sv.replace(l - 2, l, ")"); System.out.println("\n"); System.out.println(sv.toString()); - fail("\n" + sv.toString()); + fail("\n" + sv.toString()+ "\n"+Joiner.on("\n").join(sv.toString().split(" "))); } } diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 1d9dc4d5df4a..a0771625eeaa 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -116,6 +116,7 @@ private static String getTypeForColName(String colName) case "arrayStringNulls": return "ColumnType.STRING_ARRAY"; case "arrayLongNulls": + case "arrayLong": return "ColumnType.LONG_ARRAY"; case "arrayDoubleNulls": case "arrayDouble": From 3680fdb48bcc2ccb7df759d95eb1d8547bafc098 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 10:43:39 +0000 Subject: [PATCH 47/60] fix --- .../quantiles/sql/DoublesSketchSqlAggregatorTest.java | 1 + .../src/test/java/org/apache/druid/query/sql/SleepSqlTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java index ee4a01c3704f..ba1eb347fe71 100644 --- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java +++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/sql/DoublesSketchSqlAggregatorTest.java @@ -399,6 +399,7 @@ public void testSubqueryWithNestedGroupBy() new ExpressionVirtualColumn("v1", "case_searched((\"j0.a0\" < \"_a0\"),'val2',((\"j0.a0\" >= \"_a0\") && (\"j0.a0\" < \"_a1\")),'val3',(\"j0.a0\" >= \"_a1\"),'val1',null)", ColumnType.STRING, TestExprMacroTable.INSTANCE) ) .columns("v0", "j0.d0", "j0.a0", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.LONG, ColumnType.STRING) .build() ), expectedResults diff --git a/extensions-core/testing-tools/src/test/java/org/apache/druid/query/sql/SleepSqlTest.java b/extensions-core/testing-tools/src/test/java/org/apache/druid/query/sql/SleepSqlTest.java index 528d82bd9656..0b6125d8e3d0 100644 --- a/extensions-core/testing-tools/src/test/java/org/apache/druid/query/sql/SleepSqlTest.java +++ b/extensions-core/testing-tools/src/test/java/org/apache/druid/query/sql/SleepSqlTest.java @@ -72,6 +72,7 @@ public void testSleepFunction() ) ) .columns("v0") + .columnTypes(ColumnType.STRING) .filters(range("m1", ColumnType.DOUBLE, null, 2.0, false, true)) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) From cb474cbc15f65fbf57de7ff114e59fb785730179 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 11:00:18 +0000 Subject: [PATCH 48/60] fix --- .../hll/sql/HllSketchSqlAggregatorTest.java | 2 ++ .../theta/sql/ThetaSketchSqlAggregatorTest.java | 1 + .../org/apache/druid/msq/exec/MSQWindowTest.java | 16 ++++++++++++++++ .../java/org/apache/druid/sql/calcite/WX1.java | 4 ++++ 4 files changed, 23 insertions(+) diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchSqlAggregatorTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchSqlAggregatorTest.java index 02359a50b62e..074955625a64 100644 --- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchSqlAggregatorTest.java +++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/sql/HllSketchSqlAggregatorTest.java @@ -1051,6 +1051,7 @@ public void testHllEstimateAsVirtualColumn() ) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("v0", "v1", "v2", "v3") + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.DOUBLE, ColumnType.DOUBLE) .context(QUERY_CONTEXT_DEFAULT) .build() ), @@ -1089,6 +1090,7 @@ public void testHllEstimateAsVirtualColumnWithRound() )) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("v0", "v1") + .columnTypes(ColumnType.DOUBLE, ColumnType.DOUBLE) .context(QUERY_CONTEXT_DEFAULT) .build() ), diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchSqlAggregatorTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchSqlAggregatorTest.java index d82863a8bf15..809c0c950031 100644 --- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchSqlAggregatorTest.java +++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/sql/ThetaSketchSqlAggregatorTest.java @@ -1108,6 +1108,7 @@ public void testThetaSketchEstimateAsVirtualColumn() )) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .columns("v0") + .columnTypes(ColumnType.DOUBLE) .context(QUERY_CONTEXT_DEFAULT) .build() ), diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java index e49350d4c404..a3351d1e0591 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java @@ -591,6 +591,7 @@ public void testWindowOnFooWithNoGroupByAndPartition() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1") + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -658,6 +659,7 @@ public void testWindowOnFooWithNoGroupByAndPartitionOnTwoElements() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "m2") + .columnTypes(ColumnType.FLOAT, ColumnType.DOUBLE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -728,6 +730,7 @@ public void testWindowOnFooWithNoGroupByAndPartitionByAnother() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "m2") + .columnTypes(ColumnType.FLOAT, ColumnType.DOUBLE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -870,6 +873,7 @@ public void testWindowOnFooWithNoGroupByAndPartitionAndVirtualColumns() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "v0") + .columnTypes(ColumnType.FLOAT, ColumnType.LONG) .virtualColumns(expressionVirtualColumn("v0", "strlen(\"dim1\")", ColumnType.LONG)) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) @@ -942,6 +946,7 @@ public void testWindowOnFooWithNoGroupByAndEmptyOver() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1") + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1024,6 +1029,7 @@ public void testWindowOnFooWithPartitionByOrderBYWithJoin() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\"m2\"", ColumnType.FLOAT)) .columns("m2", "v0") + .columnTypes(ColumnType.DOUBLE, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature1) .build() @@ -1038,6 +1044,7 @@ public void testWindowOnFooWithPartitionByOrderBYWithJoin() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.m2") + .columnTypes(ColumnType.FLOAT, ColumnType.DOUBLE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1127,6 +1134,7 @@ public void testWindowOnFooWithEmptyOverWithJoin() .intervals(querySegmentSpec(Filtration.eternity())) .virtualColumns(expressionVirtualColumn("v0", "\"m2\"", ColumnType.FLOAT)) .columns("m2", "v0") + .columnTypes(ColumnType.DOUBLE, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature1) .build() @@ -1141,6 +1149,7 @@ public void testWindowOnFooWithEmptyOverWithJoin() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.m2") + .columnTypes(ColumnType.FLOAT, ColumnType.DOUBLE) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1213,6 +1222,7 @@ public void testWindowOnFooWithDim2() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "m1") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1298,6 +1308,7 @@ public void testWindowOnFooWithEmptyOverWithUnnest() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.unnest") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1380,6 +1391,7 @@ public void testWindowOnFooWithPartitionByAndWithUnnest() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "j0.unnest") + .columnTypes(ColumnType.FLOAT, ColumnType.STRING) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1751,6 +1763,7 @@ public void testSelectWithWikipedia() .intervals(querySegmentSpec(Filtration.eternity())) .filters(in("cityName", ImmutableList.of("Ahmedabad", "Albuquerque"))) .columns("cityName", "added") + .columnTypes(ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(contextWithRowSignature) .build()), @@ -1840,6 +1853,7 @@ public void testSelectWithWikipediaWithPartitionKeyNotInSelect() .intervals(querySegmentSpec(Filtration.eternity())) .filters(notNull("cityName")) .columns("cityName", "countryIsoCode", "added") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(innerContextWithRowSignature) .build()), @@ -1868,6 +1882,7 @@ public void testSelectWithWikipediaWithPartitionKeyNotInSelect() .dataSource(new QueryDataSource(query)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cityName", "added", "w0") + .columnTypes(ColumnType.STRING, ColumnType.LONG, ColumnType.LONG) .limit(5) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(outerContextWithRowSignature) @@ -2087,6 +2102,7 @@ public void testWindowOnMixOfEmptyAndNonEmptyOverWithMultipleWorkers() .dataSource(new QueryDataSource(windowQuery)) .intervals(querySegmentSpec(Filtration.eternity())) .columns("d0", "d1", "d2", "w0", "w1") + .columnTypes(ColumnType.STRING, ColumnType.DOUBLE, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .orderBy( ImmutableList.of( OrderBy.ascending("d0"), diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index a0771625eeaa..151de7c389c5 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -33,6 +33,7 @@ public static void main(String[] args) throws IOException { String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java"; + pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQWindowTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); @@ -93,10 +94,12 @@ public static void main(String[] args) throws IOException private static String getTypeForColName(String colName) { + colName = colName.replaceAll(".*\\.", ""); switch (colName) { case "j0.unnest": case "_j0.unnest": + case "unnest": return "ColumnType.STRING"; case "nest": case "nester": @@ -110,6 +113,7 @@ private static String getTypeForColName(String colName) case "unique_dim1": return "ColumnType.ofComplex(\"hyperUnique\")"; case "z": + case "added": case "cnt": case "__time": return "ColumnType.LONG"; From 7ccf86a6a95e8580daa98ea00f8c0e750684df6f Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 11:14:41 +0000 Subject: [PATCH 49/60] make some more --- .../apache/druid/msq/exec/MSQSelectTest.java | 29 ++++++++++++++++--- .../org/apache/druid/sql/calcite/WX1.java | 11 ++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java index a82a33c44d60..7d45ec04e835 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java @@ -164,6 +164,7 @@ public void testCalculator(String contextName, Map context) ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .context(defaultScanQueryContext(context, resultSignature)) .build() ) @@ -197,6 +198,7 @@ public void testSelectOnFoo(String contextName, Map context) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cnt", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(defaultScanQueryContext(context, resultSignature)) .build() ) @@ -255,6 +257,7 @@ public void testSelectOnFoo2(String contextName, Map context) .dataSource(CalciteTests.DATASOURCE2) .intervals(querySegmentSpec(Filtration.eternity())) .columns("m1", "dim2") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(defaultScanQueryContext( context, RowSignature.builder() @@ -331,6 +334,7 @@ public void testSelectOnFooDuplicateColumnNames(String contextName, Map context) .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cnt", "dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING) .context(defaultScanQueryContext(context, resultSignature)) .limit(10) .build() @@ -998,6 +1007,7 @@ private void testJoin(String contextName, Map context, final Joi .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim2", "m1", "m2") + .columnTypes(ColumnType.STRING, ColumnType.FLOAT, ColumnType.DOUBLE) .context( defaultScanQueryContext( queryContext, @@ -1016,7 +1026,8 @@ private void testJoin(String contextName, Map context, final Joi newScanQueryBuilder() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("m1")) + .columns("m1") + .columnTypes(ColumnType.FLOAT) .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context( defaultScanQueryContext( @@ -1477,6 +1488,7 @@ public void testExternSelectWithMultipleWorkers(String contextName, Map ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .context(defaultScanQueryContext( context, resultSignature @@ -2647,7 +2664,8 @@ public void testSelectUnnestOnFoo(String contextName, Map contex context, resultSignature )) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build()) .columnMappings(expectedColumnMappings) .tuningConfig(MSQTuningConfig.defaultConfig()) @@ -2718,6 +2736,7 @@ public void testSelectUnnestOnQueryFoo(String contextName, Map c .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .filters(equality("dim2", "a", ColumnType.STRING)) .columns("dim3") + .columnTypes(ColumnType.STRING) .context(defaultScanQueryContext( context, resultSignature1 @@ -2734,7 +2753,8 @@ public void testSelectUnnestOnQueryFoo(String contextName, Map c context, resultSignature )) - .columns(ImmutableList.of("j0.unnest")) + .columns("j0.unnest") + .columnTypes(ColumnType.STRING) .build()) .columnMappings(expectedColumnMappings) .tuningConfig(MSQTuningConfig.defaultConfig()) @@ -2801,7 +2821,8 @@ public void testUnionAllUsingUnionDataSource(String contextName, Map Date: Fri, 8 Nov 2024 11:24:52 +0000 Subject: [PATCH 50/60] sqlcompat done --- .../test/java/org/apache/druid/msq/exec/MSQArraysTest.java | 6 ++++++ .../org/apache/druid/msq/exec/MSQComplexGroupByTest.java | 1 + .../org/apache/druid/msq/exec/MSQLoadedSegmentTests.java | 2 ++ sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java index 24d1e1bac799..9e323b52577a 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQArraysTest.java @@ -774,6 +774,7 @@ public void testSelectOnArrays(String contextName, Map context, .dataSource(dataFileExternalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns(scanSignature.getColumnNames()) + .columnTypes(scanSignature.getColumnTypes()) .virtualColumns(new ExpressionVirtualColumn( "v0", "timestamp_parse(\"timestamp\",null,'UTC')", @@ -854,6 +855,7 @@ public void testScanWithOrderByOnStringArray(String contextName, Map c ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("a_bool") + .columnTypes(scanSignature.getColumnTypes()) .context(defaultScanQueryContext(context, scanSignature)) .build(); @@ -1080,6 +1085,7 @@ public void testScanExternArrayWithNonConvertibleType(String contextName, Map cont .dataSource(dataFileExternalDataSource) .intervals(querySegmentSpec(Filtration.eternity())) .columns("obj") + .columnTypes(ColumnType.NESTED_DATA) .context(defaultScanQueryContext(context, rowSignature)) .orderBy(Collections.singletonList(OrderBy.ascending("obj"))) .build() diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQLoadedSegmentTests.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQLoadedSegmentTests.java index 4ea4cb0344ff..ff7ca696bed9 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQLoadedSegmentTests.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQLoadedSegmentTests.java @@ -127,6 +127,7 @@ public void testSelectWithLoadedSegmentsOnFoo() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cnt", "dim1") + .columnTypes(resultSignature.getColumnTypes()) .context(defaultScanQueryContext(REALTIME_QUERY_CTX, resultSignature)) .build() ) @@ -190,6 +191,7 @@ public void testSelectWithLoadedSegmentsOnFooWithOrderBy() .dataSource(CalciteTests.DATASOURCE1) .intervals(querySegmentSpec(Filtration.eternity())) .columns("cnt", "dim1") + .columnTypes(resultSignature.getColumnTypes()) .orderBy(ImmutableList.of(OrderBy.ascending("dim1"))) .context(defaultScanQueryContext(REALTIME_QUERY_CTX, resultSignature)) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index e4d1f23230d9..86072eac269b 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -35,7 +35,7 @@ public static void main(String[] args) throws IOException { String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java"; - pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java"; + pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 706f86eb72c5b5f0001a53beb4d27ea5563375bf Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 11:39:55 +0000 Subject: [PATCH 51/60] n1 --- .../druid/sql/calcite/CalciteQueryTest.java | 22 +++++++++++-------- .../org/apache/druid/sql/calcite/WX1.java | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java index 18a759ed2e77..68fd07701439 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java @@ -624,7 +624,7 @@ public void testDiv() expressionVirtualColumn("v0", "div(\"m1\",2)", ColumnType.LONG), expressionVirtualColumn("v1", "div((\"cnt\" + 2),(\"cnt\" + 1))", ColumnType.LONG) ) - .columns(ImmutableList.of("cnt", "m1", "v0", "v1")) + .columns("cnt", "m1", "v0", "v1") .columnTypes(ColumnType.LONG, ColumnType.FLOAT, ColumnType.LONG, ColumnType.LONG) .context(QUERY_CONTEXT_DEFAULT) .build() @@ -2532,7 +2532,7 @@ public void testDECODE_BASE64_UTF8() ) ) .limit(1) - .columns(ImmutableList.of("v0")) + .columns("v0") .columnTypes(ColumnType.STRING) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .context(QUERY_CONTEXT_DEFAULT) @@ -3486,6 +3486,7 @@ public void testNullLongFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ) @@ -3523,6 +3524,7 @@ public void testNullDoubleFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ) @@ -3560,6 +3562,7 @@ public void testNullFloatFilter() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("EXPR$0") + .columnTypes(ColumnType.LONG) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() ) @@ -7789,7 +7792,7 @@ public void testMultipleExactCountDistinctWithGroupingAndOtherAggregatorsUsingJo ) .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Filtration.eternity())) - .columns(ImmutableList.of("d0", "a0", "j0.a0", "_j0.a0")) + .columns("d0", "a0", "j0.a0", "_j0.a0") .columnTypes(ColumnType.STRING, ColumnType.LONG, ColumnType.LONG, ColumnType.LONG) .build() ), @@ -12935,6 +12938,7 @@ public void testConcatDecomposeIsNull() ) .intervals(querySegmentSpec(Filtration.eternity())) .columns("dim1", "dim2", "dimX") + .columnTypes(ColumnType.STRING, ColumnType.STRING, ColumnType.STRING) .resultFormat(ResultFormat.RESULT_FORMAT_COMPACTED_LIST) .build() @@ -15547,7 +15551,7 @@ public void testOrderByAlongWithInternalScanQuery() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .limit(1) - .columns(ImmutableList.of("__time", "m1")) + .columns("__time", "m1") .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .order(Order.ASCENDING) .build() @@ -15590,7 +15594,7 @@ public void testOrderByAlongWithInternalScanQueryNoDistinct() .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) .limit(1) - .columns(ImmutableList.of("__time", "m1")) + .columns("__time", "m1") .columnTypes(ColumnType.LONG, ColumnType.FLOAT) .order(Order.DESCENDING) .build() @@ -15613,7 +15617,7 @@ public void testFilterWithNVLAndNotIn() .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) - .columns(ImmutableList.of("__time", "dim1")) + .columns("__time", "dim1") .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() @@ -15640,7 +15644,7 @@ public void testFilterWithNVLAndInIsNotTrue() .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) - .columns(ImmutableList.of("__time", "dim1")) + .columns("__time", "dim1") .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() @@ -15667,7 +15671,7 @@ public void testFilterWithNvlishCaseAndNotIn() .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) - .columns(ImmutableList.of("__time", "dim1")) + .columns("__time", "dim1") .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() @@ -15694,7 +15698,7 @@ public void testFilterWithNvlishCase2AndNotIn() .context(QUERY_CONTEXT_DEFAULT) .intervals(querySegmentSpec(Intervals.of( "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"))) - .columns(ImmutableList.of("__time", "dim1")) + .columns("__time", "dim1") .columnTypes(ColumnType.LONG, ColumnType.STRING) .filters(not(in("dim1", Arrays.asList("", "a")))) .build() diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 86072eac269b..15fa78c2a0f3 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -34,8 +34,8 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteArraysQueryTest.java"; - pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java"; +// pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); Path path = new File(pathname).toPath(); From 974b489c426f060f68053263c51a8f53d00104a3 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 11:44:16 +0000 Subject: [PATCH 52/60] onemore --- .../src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java index 7d45ec04e835..09dcbfcda144 100644 --- a/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java +++ b/extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQSelectTest.java @@ -2494,7 +2494,7 @@ public void testJoinUsesDifferentAlgorithm(String contextName, Map Date: Fri, 8 Nov 2024 12:22:53 +0000 Subject: [PATCH 53/60] remove fixing tools --- .../java/org/apache/druid/query/Druids.java | 1 - .../druid/sql/calcite/QueryTestRunner.java | 39 ----- .../org/apache/druid/sql/calcite/WX1.java | 141 ------------------ 3 files changed, 181 deletions(-) delete mode 100644 sql/src/test/java/org/apache/druid/sql/calcite/WX1.java diff --git a/processing/src/main/java/org/apache/druid/query/Druids.java b/processing/src/main/java/org/apache/druid/query/Druids.java index 523998122a82..aad70c9ecb5d 100644 --- a/processing/src/main/java/org/apache/druid/query/Druids.java +++ b/processing/src/main/java/org/apache/druid/query/Druids.java @@ -830,7 +830,6 @@ public static class ScanQueryBuilder public ScanQuery build() { -// assertNotNull(columnTypes); return new ScanQuery( dataSource, querySegmentSpec, diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 2bb884044a95..27071dcf7b2c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -21,8 +21,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; -import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; @@ -37,9 +35,7 @@ import org.apache.druid.java.util.common.guava.Sequence; import org.apache.druid.query.Query; import org.apache.druid.query.QueryContexts; -import org.apache.druid.query.scan.ScanQuery; import org.apache.druid.quidem.DruidQTestInfo; -import org.apache.druid.segment.column.ColumnType; import org.apache.druid.segment.column.RowSignature; import org.apache.druid.server.security.ResourceAction; import org.apache.druid.sql.DirectStatement; @@ -67,8 +63,6 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import static org.junit.Assert.fail; - /** * Runs a test built up by {@link QueryTestBuilder}. Running a SQL query test * is somewhat complex; with different modes and items to verify. To manage the @@ -451,27 +445,6 @@ private void verifyQuery(QueryResults queryResults) for (int i = 0; i < expectedQueries.size(); i++) { Query expectedQuery = expectedQueries.get(i); Query actualQuery = recordedQueries.get(i); - if (expectedQuery instanceof ScanQuery && actualQuery instanceof ScanQuery) { - ScanQuery scanQuery2 = (ScanQuery) actualQuery; - ScanQuery scanQuery = (ScanQuery) expectedQuery; - if (!Objects.equal(scanQuery.getColumnTypes(), scanQuery2.getColumnTypes())) { - StringBuffer sv = new StringBuffer(); - sv.append( - ".columnTypes(" - ); - for (ColumnType query : scanQuery2.getColumnTypes()) { - String typeString = typeStringFor(query); - sv.append(typeString); - sv.append(", "); - } - int l = sv.length(); - sv.replace(l - 2, l, ")"); - System.out.println("\n"); - System.out.println(sv.toString()); - fail("\n" + sv.toString()+ "\n"+Joiner.on("\n").join(sv.toString().split(" "))); - } - } - Assert.assertEquals( StringUtils.format("query #%d: %s", i + 1, builder.sql), expectedQuery, @@ -493,18 +466,6 @@ private void verifyQuery(QueryResults queryResults) } } } - - private String typeStringFor(ColumnType query) - { - if(query.isArray()) { - return String.format("ColumnType.ofArray(ColumnType.%s)", query.getElementType()); - } - if (query.getComplexTypeName() != null) { - return "ColumnType.ofComplex(\"" + query.getComplexTypeName() + "\")"; - } else { - return ("ColumnType." + query); - } - } } /** diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java deleted file mode 100644 index 15fa78c2a0f3..000000000000 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.druid.sql.calcite; - -import org.apache.commons.lang3.StringUtils; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class WX1 -{ - public static void main(String[] args) throws IOException - { - - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java"; -// pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; - // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); - System.out.println(pathname); - Path path = new File(pathname).toPath(); - List lines = Files.readAllLines(path); - List newLines = new ArrayList(); - - String st = null; - String colLine = null; - for (String l : lines) { - - if (l.contains("ScanQueryBuilder")) { - st = l; - } - if (l.contains("columns(") && l.contains(")")) { - - Pattern p = Pattern.compile("( *\\.columns\\()ImmutableList.of.(.*)\\)\\)$"); - Matcher m = p.matcher(l); - if(m.matches()) { - String newL = m.group(1) + m.group(2) + ")"; - l = newL; - } - colLine = l; - } - if (l.contains("columnTypes")) { - colLine = null; - } - if (l.contains(";")) { - st = null; - colLine = null; - } - - if (colLine != null && l != colLine && !l.contains("columnTypes")) { - System.out.println(colLine); - String[] p0 = colLine.split("[()]"); - String[] aa = p0[1].split(","); - - StringBuffer sb = new StringBuffer(); - - sb.append(colLine.substring(0, colLine.indexOf("c"))); - sb.append("columnTypes("); - - for (String colName : aa) { - colName = StringUtils.strip(colName); - colName = colName.replaceAll("\"", ""); - - String type = getTypeForColName(colName); - - sb.append(type + ", "); - } - int ll = sb.length(); - sb.delete(ll - 2, ll); - sb.append(")"); - System.out.println(l); - System.out.println(sb.toString()); - colLine = null; - newLines.add(sb.toString()); - } - - newLines.add(l); - } - - Files.write(path, newLines); - - } - - private static String getTypeForColName(String colName) - { - colName = colName.replaceAll(".*\\.", ""); - switch (colName) - { - case "j0.unnest": - case "_j0.unnest": - case "unnest": - return "ColumnType.STRING"; - case "nest": - case "nester": - return "ColumnType.ofComplex(\"json\")"; - case "f1": - case "m1": - return "ColumnType.FLOAT"; - case "d1": - case "m2": - return "ColumnType.DOUBLE"; - case "unique_dim1": - return "ColumnType.ofComplex(\"hyperUnique\")"; - case "z": - case "added": - case "cnt": - case "__time": - return "ColumnType.LONG"; - case "arrayStringNulls": - return "ColumnType.STRING_ARRAY"; - case "arrayLongNulls": - case "arrayLong": - return "ColumnType.LONG_ARRAY"; - case "arrayDoubleNulls": - case "arrayDouble": - return "ColumnType.DOUBLE_ARRAY"; - default: - return "ColumnType.STRING"; - } - } -} From e11048fb532170da84db20970f0e88267dbe648d Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 12:34:22 +0000 Subject: [PATCH 54/60] add comment --- .../src/test/java/org/apache/druid/query/scan/ScanQueryTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java index aa1d0667371a..847226ccb0d2 100644 --- a/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java +++ b/processing/src/test/java/org/apache/druid/query/scan/ScanQueryTest.java @@ -457,6 +457,7 @@ public void testEquals() { EqualsVerifier.forClass(ScanQuery.class) .suppress(Warning.NULL_FIELDS, Warning.NONFINAL_FIELDS) + // these fields are derived from the context .withIgnoredFields("maxRowsQueuedForOrdering", "maxSegmentPartitionsOrderedInMemory") .usingGetClass() .verify(); From b8ed3368d344bceea65a3413de5a40cce4b30569 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Mon, 11 Nov 2024 08:32:56 +0000 Subject: [PATCH 55/60] up --- .../decoupled.iq | 136 +++++++++--------- .../unnest.iq | 15 +- 2 files changed, 76 insertions(+), 75 deletions(-) diff --git a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq index 530bbe172bb9..3598677d2b71 100644 --- a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq +++ b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq @@ -2,95 +2,95 @@ !use druidtest://?numMergeBuffers=3 !set outputformat mysql -select cityName, count(case when delta > 0 then channel end) as cnt, count(1) as aall -from wikipedia -where cityName in ('New York', 'Aarhus') -group by 1 -order by 1; -+----------+-----+------+ -| cityName | cnt | aall | -+----------+-----+------+ -| Aarhus | 0 | 1 | -| New York | 7 | 13 | -+----------+-----+------+ -(2 rows) +SELECT + (TIME_FLOOR("__time", 'P1D', NULL, 'Asia/Calcutta')) AS "__time", + SUM(CASE WHEN "countryIsoCode" IN ('US') THEN added ELSE 0 END) AS "CASE_LONG", + SUM(CASE WHEN "countryIsoCode" IN ('US') THEN CAST(added as double) ELSE 0.0 END) AS "CASE_DOUBLE", + CAST(SUM(CASE WHEN "countryIsoCode" IN ('US') THEN added ELSE 0 END) as double) AS "CASE_DOUBLE2", + SUM(CAST(added as double)) AS "CASE_DOUBLE3" +FROM "wikipedia" +WHERE ("__time" >= '2024-10-23T09:00:00.000Z' AND "__time" < '2024-10-30T11:00:00.000Z') +GROUP BY 1 +ORDER BY "__time" +LIMIT 10001; ++--------+-----------+-------------+--------------+--------------+ +| __time | CASE_LONG | CASE_DOUBLE | CASE_DOUBLE2 | CASE_DOUBLE3 | ++--------+-----------+-------------+--------------+--------------+ ++--------+-----------+-------------+--------------+--------------+ +(0 rows) !ok -LogicalSort(sort0=[$0], dir0=[ASC]) - LogicalAggregate(group=[{0}], cnt=[COUNT($1)], aall=[COUNT()]) - LogicalProject(cityName=[$2], $f1=[CASE(>($17, 0), $1, null:VARCHAR)]) - LogicalFilter(condition=[OR(=($2, 'New York'), =($2, 'Aarhus'))]) - LogicalTableScan(table=[[druid, wikipedia]]) +LogicalSort(sort0=[$0], dir0=[ASC], fetch=[10001]) + LogicalProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3]) + LogicalAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)]) + LogicalProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE]) + LogicalFilter(condition=[AND(>=($0, CAST('2024-10-23T09:00:00.000Z'):TIMESTAMP(3) NOT NULL), <($0, CAST('2024-10-30T11:00:00.000Z'):TIMESTAMP(3) NOT NULL))]) + LogicalTableScan(table=[[druid, wikipedia]]) !convertedPlan -LogicalSort(sort0=[$0], dir0=[ASC]) - LogicalAggregate(group=[{0}], cnt=[COUNT($1) FILTER $2], aall=[COUNT()]) - LogicalProject(cityName=[$2], channel=[$1], $f3=[IS TRUE(>($17, 0))]) - LogicalFilter(condition=[SEARCH($2, Sarg['Aarhus':VARCHAR, 'New York':VARCHAR]:VARCHAR)]) - LogicalTableScan(table=[[druid, wikipedia]]) +LogicalProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3]) + LogicalSort(sort0=[$0], dir0=[ASC], fetch=[10001]) + LogicalAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)]) + LogicalProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE]) + LogicalFilter(condition=[SEARCH($0, Sarg[[2024-10-23 09:00:00:TIMESTAMP(3)..2024-10-30 11:00:00:TIMESTAMP(3))]:TIMESTAMP(3))]) + LogicalTableScan(table=[[druid, wikipedia]]) !logicalPlan -DruidAggregate(group=[{0}], cnt=[COUNT($1) FILTER $2], aall=[COUNT()], druid=[logical]) - DruidProject(cityName=[$2], channel=[$1], $f3=[IS TRUE(>($17, 0))], druid=[logical]) - DruidFilter(condition=[SEARCH($2, Sarg['Aarhus':VARCHAR, 'New York':VARCHAR]:VARCHAR)]) - DruidTableScan(table=[[druid, wikipedia]], druid=[logical]) +DruidProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3], druid=[logical]) + DruidSort(sort0=[$0], dir0=[ASC], fetch=[10001], druid=[logical]) + DruidAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)], druid=[logical]) + DruidProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE], druid=[logical]) + DruidFilter(condition=[SEARCH($0, Sarg[[2024-10-23 09:00:00:TIMESTAMP(3)..2024-10-30 11:00:00:TIMESTAMP(3))]:TIMESTAMP(3))]) + DruidTableScan(table=[[druid, wikipedia]], druid=[logical]) !druidPlan { - "queryType" : "groupBy", + "queryType" : "timeseries", "dataSource" : { "type" : "table", "name" : "wikipedia" }, "intervals" : { "type" : "intervals", - "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] - }, - "filter" : { - "type" : "inType", - "column" : "cityName", - "matchValueType" : "STRING", - "sortedValues" : [ "Aarhus", "New York" ] + "intervals" : [ "2024-10-23T09:00:00.000Z/2024-10-30T11:00:00.000Z" ] }, + "virtualColumns" : [ { + "type" : "expression", + "name" : "v1", + "expression" : "case_searched((\"countryIsoCode\" == 'US'),\"added\",0)", + "outputType" : "LONG" + }, { + "type" : "expression", + "name" : "v2", + "expression" : "case_searched((\"countryIsoCode\" == 'US'),CAST(\"added\", 'DOUBLE'),0.0)", + "outputType" : "DOUBLE" + } ], "granularity" : { - "type" : "all" + "type" : "period", + "period" : "P1D", + "timeZone" : "Asia/Kolkata", + "origin" : null }, - "dimensions" : [ { - "type" : "default", - "dimension" : "cityName", - "outputName" : "d0", - "outputType" : "STRING" - } ], "aggregations" : [ { - "type" : "filtered", - "aggregator" : { - "type" : "count", - "name" : "a0" - }, - "filter" : { - "type" : "and", - "fields" : [ { - "type" : "not", - "field" : { - "type" : "null", - "column" : "channel" - } - }, { - "type" : "range", - "column" : "delta", - "matchValueType" : "LONG", - "lower" : 0, - "lowerOpen" : true - } ] - }, - "name" : "a0" + "type" : "longSum", + "name" : "a0", + "fieldName" : "v1" + }, { + "type" : "doubleSum", + "name" : "a1", + "fieldName" : "v2" }, { - "type" : "count", - "name" : "a1" + "type" : "doubleSum", + "name" : "a2", + "fieldName" : "added" + } ], + "postAggregations" : [ { + "type" : "expression", + "name" : "s0", + "expression" : "CAST(\"a0\", 'DOUBLE')", + "outputType" : "DOUBLE" } ], - "limitSpec" : { - "type" : "NoopLimitSpec" - } + "limit" : 10001 } !nativePlan diff --git a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq index aac89b7f3c7c..33885be62d32 100644 --- a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq +++ b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq @@ -17,11 +17,12 @@ LogicalProject(d3=[$17]) !convertedPlan -LogicalProject(d3=[$18]) - LogicalCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{17}]) - LogicalProject(__time=[$0], dim1=[$1], dim2=[CAST('a':VARCHAR):VARCHAR], dim3=[$3], dim4=[$4], dim5=[$5], dim6=[$6], d1=[$7], d2=[$8], f1=[$9], f2=[$10], l1=[$11], l2=[$12], cnt=[$13], m1=[$14], m2=[$15], unique_dim1=[$16], $f17=[MV_TO_ARRAY($3)]) - LogicalFilter(condition=[=($2, 'a')]) - LogicalTableScan(table=[[druid, numfoo]]) +LogicalProject(d3=[$1]) + LogicalCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{0}]) + LogicalProject($f17=[MV_TO_ARRAY($1)]) + LogicalFilter(condition=[=($0, 'a')]) + LogicalProject(dim2=[$2], dim3=[$3]) + LogicalTableScan(table=[[druid, numfoo]]) Uncollect LogicalProject(EXPR$0=[$cor0.$f17]) LogicalValues(tuples=[[{ 0 }]]) @@ -29,10 +30,10 @@ LogicalProject(d3=[$18]) !logicalPlan LogicalProject(d3=[$17]) - LogicalCorrelate(correlation=[$cor2], joinType=[inner], requiredColumns=[{3}]) + LogicalCorrelate(correlation=[$cor1], joinType=[inner], requiredColumns=[{3}]) LogicalFilter(condition=[=($2, 'a')]) LogicalTableScan(table=[[druid, numfoo]]) - DruidUnnestRel(expr=[MV_TO_ARRAY($cor2.dim3)], filter=[null]) + DruidUnnestRel(expr=[MV_TO_ARRAY($cor1.dim3)], filter=[null]) !druidPlan { From 9af9e456e031f547cbcf99670bd32a31c7c1ba6e Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Mon, 11 Nov 2024 08:33:37 +0000 Subject: [PATCH 56/60] Revert "up" This reverts commit b8ed3368d344bceea65a3413de5a40cce4b30569. --- .../decoupled.iq | 136 +++++++++--------- .../unnest.iq | 15 +- 2 files changed, 75 insertions(+), 76 deletions(-) diff --git a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq index 3598677d2b71..530bbe172bb9 100644 --- a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq +++ b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/decoupled.iq @@ -2,95 +2,95 @@ !use druidtest://?numMergeBuffers=3 !set outputformat mysql -SELECT - (TIME_FLOOR("__time", 'P1D', NULL, 'Asia/Calcutta')) AS "__time", - SUM(CASE WHEN "countryIsoCode" IN ('US') THEN added ELSE 0 END) AS "CASE_LONG", - SUM(CASE WHEN "countryIsoCode" IN ('US') THEN CAST(added as double) ELSE 0.0 END) AS "CASE_DOUBLE", - CAST(SUM(CASE WHEN "countryIsoCode" IN ('US') THEN added ELSE 0 END) as double) AS "CASE_DOUBLE2", - SUM(CAST(added as double)) AS "CASE_DOUBLE3" -FROM "wikipedia" -WHERE ("__time" >= '2024-10-23T09:00:00.000Z' AND "__time" < '2024-10-30T11:00:00.000Z') -GROUP BY 1 -ORDER BY "__time" -LIMIT 10001; -+--------+-----------+-------------+--------------+--------------+ -| __time | CASE_LONG | CASE_DOUBLE | CASE_DOUBLE2 | CASE_DOUBLE3 | -+--------+-----------+-------------+--------------+--------------+ -+--------+-----------+-------------+--------------+--------------+ -(0 rows) +select cityName, count(case when delta > 0 then channel end) as cnt, count(1) as aall +from wikipedia +where cityName in ('New York', 'Aarhus') +group by 1 +order by 1; ++----------+-----+------+ +| cityName | cnt | aall | ++----------+-----+------+ +| Aarhus | 0 | 1 | +| New York | 7 | 13 | ++----------+-----+------+ +(2 rows) !ok -LogicalSort(sort0=[$0], dir0=[ASC], fetch=[10001]) - LogicalProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3]) - LogicalAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)]) - LogicalProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE]) - LogicalFilter(condition=[AND(>=($0, CAST('2024-10-23T09:00:00.000Z'):TIMESTAMP(3) NOT NULL), <($0, CAST('2024-10-30T11:00:00.000Z'):TIMESTAMP(3) NOT NULL))]) - LogicalTableScan(table=[[druid, wikipedia]]) +LogicalSort(sort0=[$0], dir0=[ASC]) + LogicalAggregate(group=[{0}], cnt=[COUNT($1)], aall=[COUNT()]) + LogicalProject(cityName=[$2], $f1=[CASE(>($17, 0), $1, null:VARCHAR)]) + LogicalFilter(condition=[OR(=($2, 'New York'), =($2, 'Aarhus'))]) + LogicalTableScan(table=[[druid, wikipedia]]) !convertedPlan -LogicalProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3]) - LogicalSort(sort0=[$0], dir0=[ASC], fetch=[10001]) - LogicalAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)]) - LogicalProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE]) - LogicalFilter(condition=[SEARCH($0, Sarg[[2024-10-23 09:00:00:TIMESTAMP(3)..2024-10-30 11:00:00:TIMESTAMP(3))]:TIMESTAMP(3))]) - LogicalTableScan(table=[[druid, wikipedia]]) +LogicalSort(sort0=[$0], dir0=[ASC]) + LogicalAggregate(group=[{0}], cnt=[COUNT($1) FILTER $2], aall=[COUNT()]) + LogicalProject(cityName=[$2], channel=[$1], $f3=[IS TRUE(>($17, 0))]) + LogicalFilter(condition=[SEARCH($2, Sarg['Aarhus':VARCHAR, 'New York':VARCHAR]:VARCHAR)]) + LogicalTableScan(table=[[druid, wikipedia]]) !logicalPlan -DruidProject(__time=[$0], CASE_LONG=[$1], CASE_DOUBLE=[$2], CASE_DOUBLE2=[CAST($1):DOUBLE], CASE_DOUBLE3=[$3], druid=[logical]) - DruidSort(sort0=[$0], dir0=[ASC], fetch=[10001], druid=[logical]) - DruidAggregate(group=[{0}], CASE_LONG=[SUM($1)], CASE_DOUBLE=[SUM($2)], CASE_DOUBLE3=[SUM($3)], druid=[logical]) - DruidProject(__time=[TIME_FLOOR($0, 'P1D', null:TIMESTAMP(3), 'Asia/Calcutta')], $f1=[CASE(=($4, 'US'), $18, 0:BIGINT)], $f2=[CASE(=($4, 'US'), CAST($18):DOUBLE, 0.0:DOUBLE)], $f3=[CAST($18):DOUBLE], druid=[logical]) - DruidFilter(condition=[SEARCH($0, Sarg[[2024-10-23 09:00:00:TIMESTAMP(3)..2024-10-30 11:00:00:TIMESTAMP(3))]:TIMESTAMP(3))]) - DruidTableScan(table=[[druid, wikipedia]], druid=[logical]) +DruidAggregate(group=[{0}], cnt=[COUNT($1) FILTER $2], aall=[COUNT()], druid=[logical]) + DruidProject(cityName=[$2], channel=[$1], $f3=[IS TRUE(>($17, 0))], druid=[logical]) + DruidFilter(condition=[SEARCH($2, Sarg['Aarhus':VARCHAR, 'New York':VARCHAR]:VARCHAR)]) + DruidTableScan(table=[[druid, wikipedia]], druid=[logical]) !druidPlan { - "queryType" : "timeseries", + "queryType" : "groupBy", "dataSource" : { "type" : "table", "name" : "wikipedia" }, "intervals" : { "type" : "intervals", - "intervals" : [ "2024-10-23T09:00:00.000Z/2024-10-30T11:00:00.000Z" ] + "intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ] + }, + "filter" : { + "type" : "inType", + "column" : "cityName", + "matchValueType" : "STRING", + "sortedValues" : [ "Aarhus", "New York" ] }, - "virtualColumns" : [ { - "type" : "expression", - "name" : "v1", - "expression" : "case_searched((\"countryIsoCode\" == 'US'),\"added\",0)", - "outputType" : "LONG" - }, { - "type" : "expression", - "name" : "v2", - "expression" : "case_searched((\"countryIsoCode\" == 'US'),CAST(\"added\", 'DOUBLE'),0.0)", - "outputType" : "DOUBLE" - } ], "granularity" : { - "type" : "period", - "period" : "P1D", - "timeZone" : "Asia/Kolkata", - "origin" : null + "type" : "all" }, + "dimensions" : [ { + "type" : "default", + "dimension" : "cityName", + "outputName" : "d0", + "outputType" : "STRING" + } ], "aggregations" : [ { - "type" : "longSum", - "name" : "a0", - "fieldName" : "v1" - }, { - "type" : "doubleSum", - "name" : "a1", - "fieldName" : "v2" + "type" : "filtered", + "aggregator" : { + "type" : "count", + "name" : "a0" + }, + "filter" : { + "type" : "and", + "fields" : [ { + "type" : "not", + "field" : { + "type" : "null", + "column" : "channel" + } + }, { + "type" : "range", + "column" : "delta", + "matchValueType" : "LONG", + "lower" : 0, + "lowerOpen" : true + } ] + }, + "name" : "a0" }, { - "type" : "doubleSum", - "name" : "a2", - "fieldName" : "added" - } ], - "postAggregations" : [ { - "type" : "expression", - "name" : "s0", - "expression" : "CAST(\"a0\", 'DOUBLE')", - "outputType" : "DOUBLE" + "type" : "count", + "name" : "a1" } ], - "limit" : 10001 + "limitSpec" : { + "type" : "NoopLimitSpec" + } } !nativePlan diff --git a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq index 33885be62d32..aac89b7f3c7c 100644 --- a/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq +++ b/sql/src/test/quidem/org.apache.druid.quidem.SqlQuidemTest/unnest.iq @@ -17,12 +17,11 @@ LogicalProject(d3=[$17]) !convertedPlan -LogicalProject(d3=[$1]) - LogicalCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{0}]) - LogicalProject($f17=[MV_TO_ARRAY($1)]) - LogicalFilter(condition=[=($0, 'a')]) - LogicalProject(dim2=[$2], dim3=[$3]) - LogicalTableScan(table=[[druid, numfoo]]) +LogicalProject(d3=[$18]) + LogicalCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{17}]) + LogicalProject(__time=[$0], dim1=[$1], dim2=[CAST('a':VARCHAR):VARCHAR], dim3=[$3], dim4=[$4], dim5=[$5], dim6=[$6], d1=[$7], d2=[$8], f1=[$9], f2=[$10], l1=[$11], l2=[$12], cnt=[$13], m1=[$14], m2=[$15], unique_dim1=[$16], $f17=[MV_TO_ARRAY($3)]) + LogicalFilter(condition=[=($2, 'a')]) + LogicalTableScan(table=[[druid, numfoo]]) Uncollect LogicalProject(EXPR$0=[$cor0.$f17]) LogicalValues(tuples=[[{ 0 }]]) @@ -30,10 +29,10 @@ LogicalProject(d3=[$1]) !logicalPlan LogicalProject(d3=[$17]) - LogicalCorrelate(correlation=[$cor1], joinType=[inner], requiredColumns=[{3}]) + LogicalCorrelate(correlation=[$cor2], joinType=[inner], requiredColumns=[{3}]) LogicalFilter(condition=[=($2, 'a')]) LogicalTableScan(table=[[druid, numfoo]]) - DruidUnnestRel(expr=[MV_TO_ARRAY($cor1.dim3)], filter=[null]) + DruidUnnestRel(expr=[MV_TO_ARRAY($cor2.dim3)], filter=[null]) !druidPlan { From b351a641ee1b7ee6ca54536a0cc0fa943bb72679 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Mon, 11 Nov 2024 08:36:07 +0000 Subject: [PATCH 57/60] Revert "remove fixing tools" This reverts commit 1290a90fd6c27ec464976527dfbe0f12414d6323. --- .../java/org/apache/druid/query/Druids.java | 1 + .../druid/sql/calcite/QueryTestRunner.java | 39 +++++ .../org/apache/druid/sql/calcite/WX1.java | 141 ++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 sql/src/test/java/org/apache/druid/sql/calcite/WX1.java diff --git a/processing/src/main/java/org/apache/druid/query/Druids.java b/processing/src/main/java/org/apache/druid/query/Druids.java index aad70c9ecb5d..523998122a82 100644 --- a/processing/src/main/java/org/apache/druid/query/Druids.java +++ b/processing/src/main/java/org/apache/druid/query/Druids.java @@ -830,6 +830,7 @@ public static class ScanQueryBuilder public ScanQuery build() { +// assertNotNull(columnTypes); return new ScanQuery( dataSource, querySegmentSpec, diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 27071dcf7b2c..2bb884044a95 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -21,6 +21,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; +import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; @@ -35,7 +37,9 @@ import org.apache.druid.java.util.common.guava.Sequence; import org.apache.druid.query.Query; import org.apache.druid.query.QueryContexts; +import org.apache.druid.query.scan.ScanQuery; import org.apache.druid.quidem.DruidQTestInfo; +import org.apache.druid.segment.column.ColumnType; import org.apache.druid.segment.column.RowSignature; import org.apache.druid.server.security.ResourceAction; import org.apache.druid.sql.DirectStatement; @@ -63,6 +67,8 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import static org.junit.Assert.fail; + /** * Runs a test built up by {@link QueryTestBuilder}. Running a SQL query test * is somewhat complex; with different modes and items to verify. To manage the @@ -445,6 +451,27 @@ private void verifyQuery(QueryResults queryResults) for (int i = 0; i < expectedQueries.size(); i++) { Query expectedQuery = expectedQueries.get(i); Query actualQuery = recordedQueries.get(i); + if (expectedQuery instanceof ScanQuery && actualQuery instanceof ScanQuery) { + ScanQuery scanQuery2 = (ScanQuery) actualQuery; + ScanQuery scanQuery = (ScanQuery) expectedQuery; + if (!Objects.equal(scanQuery.getColumnTypes(), scanQuery2.getColumnTypes())) { + StringBuffer sv = new StringBuffer(); + sv.append( + ".columnTypes(" + ); + for (ColumnType query : scanQuery2.getColumnTypes()) { + String typeString = typeStringFor(query); + sv.append(typeString); + sv.append(", "); + } + int l = sv.length(); + sv.replace(l - 2, l, ")"); + System.out.println("\n"); + System.out.println(sv.toString()); + fail("\n" + sv.toString()+ "\n"+Joiner.on("\n").join(sv.toString().split(" "))); + } + } + Assert.assertEquals( StringUtils.format("query #%d: %s", i + 1, builder.sql), expectedQuery, @@ -466,6 +493,18 @@ private void verifyQuery(QueryResults queryResults) } } } + + private String typeStringFor(ColumnType query) + { + if(query.isArray()) { + return String.format("ColumnType.ofArray(ColumnType.%s)", query.getElementType()); + } + if (query.getComplexTypeName() != null) { + return "ColumnType.ofComplex(\"" + query.getComplexTypeName() + "\")"; + } else { + return ("ColumnType." + query); + } + } } /** diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java new file mode 100644 index 000000000000..15fa78c2a0f3 --- /dev/null +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -0,0 +1,141 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.druid.sql.calcite; + +import org.apache.commons.lang3.StringUtils; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class WX1 +{ + public static void main(String[] args) throws IOException + { + + String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java"; +// pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; + // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); + System.out.println(pathname); + Path path = new File(pathname).toPath(); + List lines = Files.readAllLines(path); + List newLines = new ArrayList(); + + String st = null; + String colLine = null; + for (String l : lines) { + + if (l.contains("ScanQueryBuilder")) { + st = l; + } + if (l.contains("columns(") && l.contains(")")) { + + Pattern p = Pattern.compile("( *\\.columns\\()ImmutableList.of.(.*)\\)\\)$"); + Matcher m = p.matcher(l); + if(m.matches()) { + String newL = m.group(1) + m.group(2) + ")"; + l = newL; + } + colLine = l; + } + if (l.contains("columnTypes")) { + colLine = null; + } + if (l.contains(";")) { + st = null; + colLine = null; + } + + if (colLine != null && l != colLine && !l.contains("columnTypes")) { + System.out.println(colLine); + String[] p0 = colLine.split("[()]"); + String[] aa = p0[1].split(","); + + StringBuffer sb = new StringBuffer(); + + sb.append(colLine.substring(0, colLine.indexOf("c"))); + sb.append("columnTypes("); + + for (String colName : aa) { + colName = StringUtils.strip(colName); + colName = colName.replaceAll("\"", ""); + + String type = getTypeForColName(colName); + + sb.append(type + ", "); + } + int ll = sb.length(); + sb.delete(ll - 2, ll); + sb.append(")"); + System.out.println(l); + System.out.println(sb.toString()); + colLine = null; + newLines.add(sb.toString()); + } + + newLines.add(l); + } + + Files.write(path, newLines); + + } + + private static String getTypeForColName(String colName) + { + colName = colName.replaceAll(".*\\.", ""); + switch (colName) + { + case "j0.unnest": + case "_j0.unnest": + case "unnest": + return "ColumnType.STRING"; + case "nest": + case "nester": + return "ColumnType.ofComplex(\"json\")"; + case "f1": + case "m1": + return "ColumnType.FLOAT"; + case "d1": + case "m2": + return "ColumnType.DOUBLE"; + case "unique_dim1": + return "ColumnType.ofComplex(\"hyperUnique\")"; + case "z": + case "added": + case "cnt": + case "__time": + return "ColumnType.LONG"; + case "arrayStringNulls": + return "ColumnType.STRING_ARRAY"; + case "arrayLongNulls": + case "arrayLong": + return "ColumnType.LONG_ARRAY"; + case "arrayDoubleNulls": + case "arrayDouble": + return "ColumnType.DOUBLE_ARRAY"; + default: + return "ColumnType.STRING"; + } + } +} From d2ae6179106214113bd26bfa0f35baa6f2d3c048 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Mon, 11 Nov 2024 08:46:27 +0000 Subject: [PATCH 58/60] coltypes --- .../sql/calcite/CalciteCatalogIngestionDmlTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java index e26e312534cc..d89d618bda13 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java @@ -393,6 +393,7 @@ public void testInsertHourGrainPartitonedByFromCatalog() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(queryContextWithGranularity(Granularities.HOUR)) .build() ) @@ -418,6 +419,7 @@ public void testInsertHourGrainWithDayPartitonedByFromQuery() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(queryContextWithGranularity(Granularities.DAY)) .build() ) @@ -462,6 +464,7 @@ public void testInsertNoPartitonedByWithDayPartitonedByFromQuery() .dataSource("foo") .intervals(querySegmentSpec(Filtration.eternity())) .columns("__time", "dim1", "dim2", "dim3", "cnt", "m1", "m2", "unique_dim1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG, ColumnType.FLOAT, ColumnType.DOUBLE, ColumnType.ofComplex("hyperUnique")) .context(queryContextWithGranularity(Granularities.DAY)) .build() ) @@ -521,6 +524,7 @@ public void testInsertAddNonDefinedColumnIntoNonSealedCatalogTable() expressionVirtualColumn("v3", "CAST(\"d\", 'LONG')", ColumnType.LONG) ) .columns("v0", "b", "v1", "v2", "v3", "e") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.LONG, ColumnType.STRING) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -581,6 +585,7 @@ public void testInsertTableWithClusteringWithClusteringFromCatalog() ) ) .columns("v0", "b", "d", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -640,6 +645,7 @@ public void testInsertTableWithClusteringWithClusteringFromQuery() ) ) .columns("v0", "b", "d", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -703,6 +709,7 @@ public void testInsertTableWithClusteringWithClusteringOnNewColumnFromQuery() ) ) .columns("v0", "b", "d", "e", "v1") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.STRING, ColumnType.STRING, ColumnType.LONG) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -982,6 +989,7 @@ public void testInsertAddNonDefinedColumnIntoSealedCatalogTableAndValidationDisa expressionVirtualColumn("v1", "1", ColumnType.LONG) ) .columns("v0", "b", "v1", "c", "d") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.LONG, ColumnType.LONG, ColumnType.STRING) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1046,6 +1054,7 @@ public void testInsertWithSourceIntoCatalogTable() expressionVirtualColumn("v3", "CAST(\"d\", 'LONG')", ColumnType.LONG) ) .columns("v0", "b", "v1", "v2", "v3", "e") + .columnTypes(ColumnType.LONG, ColumnType.STRING, ColumnType.LONG, ColumnType.DOUBLE, ColumnType.LONG, ColumnType.STRING) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1205,6 +1214,7 @@ public void testInsertIntoExistingWithIncompatibleTypeAssignmentAndValidationDis expressionVirtualColumn("v0", "array(\"dim1\")", ColumnType.STRING_ARRAY) ) .columns("__time", "v0") + .columnTypes(ColumnType.LONG, ColumnType.STRING_ARRAY) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) @@ -1261,6 +1271,7 @@ public void testGroupByInsertIntoExistingWithIncompatibleTypeAssignmentAndValida expressionVirtualColumn("v0", "array(\"dim1\")", ColumnType.STRING_ARRAY) ) .columns("__time", "v0") + .columnTypes(ColumnType.LONG, ColumnType.STRING_ARRAY) .context(CalciteIngestionDmlTest.PARTITIONED_BY_ALL_TIME_QUERY_CONTEXT) .build() ) From 80925a8cebe4c61185a6a03c90ca34dc0bd11010 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Mon, 11 Nov 2024 08:46:33 +0000 Subject: [PATCH 59/60] update wx --- sql/src/test/java/org/apache/druid/sql/calcite/WX1.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java index 15fa78c2a0f3..e565901a65dd 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java @@ -34,7 +34,7 @@ public class WX1 public static void main(String[] args) throws IOException { - String pathname = "./src/test/java/org/apache/druid/sql/calcite/CalciteQueryTest.java"; + String pathname = "../sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java"; // pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); System.out.println(pathname); From 7ad5c28bec6e23b9b389430fa37e26778615a435 Mon Sep 17 00:00:00 2001 From: Zoltan Haindrich Date: Fri, 8 Nov 2024 12:22:53 +0000 Subject: [PATCH 60/60] remove fixing tools --- .../java/org/apache/druid/query/Druids.java | 1 - .../druid/sql/calcite/QueryTestRunner.java | 39 ----- .../org/apache/druid/sql/calcite/WX1.java | 141 ------------------ 3 files changed, 181 deletions(-) delete mode 100644 sql/src/test/java/org/apache/druid/sql/calcite/WX1.java diff --git a/processing/src/main/java/org/apache/druid/query/Druids.java b/processing/src/main/java/org/apache/druid/query/Druids.java index 523998122a82..aad70c9ecb5d 100644 --- a/processing/src/main/java/org/apache/druid/query/Druids.java +++ b/processing/src/main/java/org/apache/druid/query/Druids.java @@ -830,7 +830,6 @@ public static class ScanQueryBuilder public ScanQuery build() { -// assertNotNull(columnTypes); return new ScanQuery( dataSource, querySegmentSpec, diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java index 2bb884044a95..27071dcf7b2c 100644 --- a/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java +++ b/sql/src/test/java/org/apache/druid/sql/calcite/QueryTestRunner.java @@ -21,8 +21,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; -import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; @@ -37,9 +35,7 @@ import org.apache.druid.java.util.common.guava.Sequence; import org.apache.druid.query.Query; import org.apache.druid.query.QueryContexts; -import org.apache.druid.query.scan.ScanQuery; import org.apache.druid.quidem.DruidQTestInfo; -import org.apache.druid.segment.column.ColumnType; import org.apache.druid.segment.column.RowSignature; import org.apache.druid.server.security.ResourceAction; import org.apache.druid.sql.DirectStatement; @@ -67,8 +63,6 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import static org.junit.Assert.fail; - /** * Runs a test built up by {@link QueryTestBuilder}. Running a SQL query test * is somewhat complex; with different modes and items to verify. To manage the @@ -451,27 +445,6 @@ private void verifyQuery(QueryResults queryResults) for (int i = 0; i < expectedQueries.size(); i++) { Query expectedQuery = expectedQueries.get(i); Query actualQuery = recordedQueries.get(i); - if (expectedQuery instanceof ScanQuery && actualQuery instanceof ScanQuery) { - ScanQuery scanQuery2 = (ScanQuery) actualQuery; - ScanQuery scanQuery = (ScanQuery) expectedQuery; - if (!Objects.equal(scanQuery.getColumnTypes(), scanQuery2.getColumnTypes())) { - StringBuffer sv = new StringBuffer(); - sv.append( - ".columnTypes(" - ); - for (ColumnType query : scanQuery2.getColumnTypes()) { - String typeString = typeStringFor(query); - sv.append(typeString); - sv.append(", "); - } - int l = sv.length(); - sv.replace(l - 2, l, ")"); - System.out.println("\n"); - System.out.println(sv.toString()); - fail("\n" + sv.toString()+ "\n"+Joiner.on("\n").join(sv.toString().split(" "))); - } - } - Assert.assertEquals( StringUtils.format("query #%d: %s", i + 1, builder.sql), expectedQuery, @@ -493,18 +466,6 @@ private void verifyQuery(QueryResults queryResults) } } } - - private String typeStringFor(ColumnType query) - { - if(query.isArray()) { - return String.format("ColumnType.ofArray(ColumnType.%s)", query.getElementType()); - } - if (query.getComplexTypeName() != null) { - return "ColumnType.ofComplex(\"" + query.getComplexTypeName() + "\")"; - } else { - return ("ColumnType." + query); - } - } } /** diff --git a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java b/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java deleted file mode 100644 index e565901a65dd..000000000000 --- a/sql/src/test/java/org/apache/druid/sql/calcite/WX1.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.druid.sql.calcite; - -import org.apache.commons.lang3.StringUtils; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class WX1 -{ - public static void main(String[] args) throws IOException - { - - String pathname = "../sql/src/test/java/org/apache/druid/sql/calcite/CalciteCatalogIngestionDmlTest.java"; -// pathname="../extensions-core/multi-stage-query/src/test/java/org/apache/druid/msq/exec/MSQComplexGroupByTest.java"; - // pathname=CalciteSubqueryTest.class.getProtectionDomain().getCodeSource().getLocation().getFile(); - System.out.println(pathname); - Path path = new File(pathname).toPath(); - List lines = Files.readAllLines(path); - List newLines = new ArrayList(); - - String st = null; - String colLine = null; - for (String l : lines) { - - if (l.contains("ScanQueryBuilder")) { - st = l; - } - if (l.contains("columns(") && l.contains(")")) { - - Pattern p = Pattern.compile("( *\\.columns\\()ImmutableList.of.(.*)\\)\\)$"); - Matcher m = p.matcher(l); - if(m.matches()) { - String newL = m.group(1) + m.group(2) + ")"; - l = newL; - } - colLine = l; - } - if (l.contains("columnTypes")) { - colLine = null; - } - if (l.contains(";")) { - st = null; - colLine = null; - } - - if (colLine != null && l != colLine && !l.contains("columnTypes")) { - System.out.println(colLine); - String[] p0 = colLine.split("[()]"); - String[] aa = p0[1].split(","); - - StringBuffer sb = new StringBuffer(); - - sb.append(colLine.substring(0, colLine.indexOf("c"))); - sb.append("columnTypes("); - - for (String colName : aa) { - colName = StringUtils.strip(colName); - colName = colName.replaceAll("\"", ""); - - String type = getTypeForColName(colName); - - sb.append(type + ", "); - } - int ll = sb.length(); - sb.delete(ll - 2, ll); - sb.append(")"); - System.out.println(l); - System.out.println(sb.toString()); - colLine = null; - newLines.add(sb.toString()); - } - - newLines.add(l); - } - - Files.write(path, newLines); - - } - - private static String getTypeForColName(String colName) - { - colName = colName.replaceAll(".*\\.", ""); - switch (colName) - { - case "j0.unnest": - case "_j0.unnest": - case "unnest": - return "ColumnType.STRING"; - case "nest": - case "nester": - return "ColumnType.ofComplex(\"json\")"; - case "f1": - case "m1": - return "ColumnType.FLOAT"; - case "d1": - case "m2": - return "ColumnType.DOUBLE"; - case "unique_dim1": - return "ColumnType.ofComplex(\"hyperUnique\")"; - case "z": - case "added": - case "cnt": - case "__time": - return "ColumnType.LONG"; - case "arrayStringNulls": - return "ColumnType.STRING_ARRAY"; - case "arrayLongNulls": - case "arrayLong": - return "ColumnType.LONG_ARRAY"; - case "arrayDoubleNulls": - case "arrayDouble": - return "ColumnType.DOUBLE_ARRAY"; - default: - return "ColumnType.STRING"; - } - } -}