github-code-scanning[bot] commented on code in PR #13943:
URL: https://github.com/apache/druid/pull/13943#discussion_r1138760777
##########
sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java:
##########
@@ -5084,4 +5087,181 @@
null
);
}
+
+ @Test
+ @Parameters(source = QueryContextForJoinProvider.class)
+ public void testRegressionFilteredAggregatorsSubqueryJoins(Map<String,
Object> queryContext)
+ {
+ cannotVectorize();
+ testQuery(
+ "select\n" +
+ "count(*) filter (where trim(both from dim1) in (select dim2 from
foo)),\n" +
+ "min(m1) filter (where 'A' not in (select m2 from foo))\n" +
+ "from foo as t0\n" +
+ "where __time in (select __time from foo)",
+ queryContext,
+ useDefault ?
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
Review Comment:
## Deprecated method or constructor invocation
Invoking [CalciteTestBase.makeColumnExpression](1) should be avoided because
it has been deprecated.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4397)
##########
sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java:
##########
@@ -5084,4 +5087,181 @@
null
);
}
+
+ @Test
+ @Parameters(source = QueryContextForJoinProvider.class)
+ public void testRegressionFilteredAggregatorsSubqueryJoins(Map<String,
Object> queryContext)
+ {
+ cannotVectorize();
+ testQuery(
+ "select\n" +
+ "count(*) filter (where trim(both from dim1) in (select dim2 from
foo)),\n" +
+ "min(m1) filter (where 'A' not in (select m2 from foo))\n" +
+ "from foo as t0\n" +
+ "where __time in (select __time from foo)",
+ queryContext,
+ useDefault ?
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
Review Comment:
## Deprecated method or constructor invocation
Invoking [CalciteTestBase.makeColumnExpression](1) should be avoided because
it has been deprecated.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4396)
##########
sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java:
##########
@@ -5084,4 +5087,181 @@
null
);
}
+
+ @Test
+ @Parameters(source = QueryContextForJoinProvider.class)
+ public void testRegressionFilteredAggregatorsSubqueryJoins(Map<String,
Object> queryContext)
+ {
+ cannotVectorize();
+ testQuery(
+ "select\n" +
+ "count(*) filter (where trim(both from dim1) in (select dim2 from
foo)),\n" +
+ "min(m1) filter (where 'A' not in (select m2 from foo))\n" +
+ "from foo as t0\n" +
+ "where __time in (select __time from foo)",
+ queryContext,
+ useDefault ?
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
+ JoinType.INNER
+ ),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+
.setVirtualColumns(expressionVirtualColumn("v0", "1", ColumnType.LONG))
+ .setDimensions(
+ new
DefaultDimensionSpec("dim2", "d0", ColumnType.STRING),
+ new DefaultDimensionSpec("v0",
"d1", ColumnType.LONG)
+ )
+ .setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "_j0.",
+ "(trim(\"dim1\",' ') == \"_j0.d0\")",
+ JoinType.LEFT
+ ),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+
.setVirtualColumns(expressionVirtualColumn("v0", "1", ColumnType.LONG))
+ .setDimFilter(selector("m2", "A",
null))
+ .setDimensions(
+ new DefaultDimensionSpec("v0",
"d0", ColumnType.LONG)
+ )
+ .setGranularity(Granularities.ALL)
+ .setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "__j0.",
+ "1",
+ JoinType.LEFT
+ )
+ )
+ .intervals(querySegmentSpec(Filtration.eternity()))
+ .aggregators(
+ new FilteredAggregatorFactory(
+ new CountAggregatorFactory("a0"),
+ and(
+ not(selector("_j0.d1", null, null)),
+ not(selector("dim1", null, null))
+ ),
+ "a0"
+ ),
+ new FilteredAggregatorFactory(
+ new FloatMinAggregatorFactory("a1", "m1"),
+ selector("__j0.d0", null, null),
+ "a1"
+ )
+ )
+ .context(queryContext)
+ .build()
+ ) :
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new
TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
Review Comment:
## Deprecated method or constructor invocation
Invoking [CalciteTestBase.makeColumnExpression](1) should be avoided because
it has been deprecated.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4399)
##########
sql/src/test/java/org/apache/druid/sql/calcite/CalciteJoinQueryTest.java:
##########
@@ -5084,4 +5087,181 @@
null
);
}
+
+ @Test
+ @Parameters(source = QueryContextForJoinProvider.class)
+ public void testRegressionFilteredAggregatorsSubqueryJoins(Map<String,
Object> queryContext)
+ {
+ cannotVectorize();
+ testQuery(
+ "select\n" +
+ "count(*) filter (where trim(both from dim1) in (select dim2 from
foo)),\n" +
+ "min(m1) filter (where 'A' not in (select m2 from foo))\n" +
+ "from foo as t0\n" +
+ "where __time in (select __time from foo)",
+ queryContext,
+ useDefault ?
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
+ JoinType.INNER
+ ),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+
.setVirtualColumns(expressionVirtualColumn("v0", "1", ColumnType.LONG))
+ .setDimensions(
+ new
DefaultDimensionSpec("dim2", "d0", ColumnType.STRING),
+ new DefaultDimensionSpec("v0",
"d1", ColumnType.LONG)
+ )
+ .setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "_j0.",
+ "(trim(\"dim1\",' ') == \"_j0.d0\")",
+ JoinType.LEFT
+ ),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+
.setVirtualColumns(expressionVirtualColumn("v0", "1", ColumnType.LONG))
+ .setDimFilter(selector("m2", "A",
null))
+ .setDimensions(
+ new DefaultDimensionSpec("v0",
"d0", ColumnType.LONG)
+ )
+ .setGranularity(Granularities.ALL)
+ .setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "__j0.",
+ "1",
+ JoinType.LEFT
+ )
+ )
+ .intervals(querySegmentSpec(Filtration.eternity()))
+ .aggregators(
+ new FilteredAggregatorFactory(
+ new CountAggregatorFactory("a0"),
+ and(
+ not(selector("_j0.d1", null, null)),
+ not(selector("dim1", null, null))
+ ),
+ "a0"
+ ),
+ new FilteredAggregatorFactory(
+ new FloatMinAggregatorFactory("a1", "m1"),
+ selector("__j0.d0", null, null),
+ "a1"
+ )
+ )
+ .context(queryContext)
+ .build()
+ ) :
+ ImmutableList.of(
+ Druids.newTimeseriesQueryBuilder()
+ .dataSource(
+ join(
+ join(
+ join(
+ new
TableDataSource(CalciteTests.DATASOURCE1),
+ new QueryDataSource(
+ GroupByQuery.builder()
+
.setDataSource(CalciteTests.DATASOURCE1)
+
.setInterval(querySegmentSpec(Filtration.eternity()))
+ .setDimensions(
+ new
DefaultDimensionSpec("__time", "d0", ColumnType.LONG)
+ )
+
.setGranularity(Granularities.ALL)
+
.setLimitSpec(NoopLimitSpec.instance())
+ .build()
+ ),
+ "j0.",
+
equalsCondition(makeColumnExpression("__time"), makeColumnExpression("j0.d0")),
Review Comment:
## Deprecated method or constructor invocation
Invoking [CalciteTestBase.makeColumnExpression](1) should be avoided because
it has been deprecated.
[Show more
details](https://github.com/apache/druid/security/code-scanning/4398)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]