You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2018/08/28 00:49:54 UTC
[incubator-druid] branch master updated: fix AssertionError of semi
join query (#6244)
This is an automated email from the ASF dual-hosted git repository.
fjy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new a879022 fix AssertionError of semi join query (#6244)
a879022 is described below
commit a879022bc8596b02b07dc44127c393990e08dcbe
Author: Dayue Gao <dy...@gmail.com>
AuthorDate: Tue Aug 28 08:49:51 2018 +0800
fix AssertionError of semi join query (#6244)
---
sql/src/main/java/io/druid/sql/calcite/rel/DruidSemiJoin.java | 8 ++++++--
sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java | 4 ++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/sql/src/main/java/io/druid/sql/calcite/rel/DruidSemiJoin.java b/sql/src/main/java/io/druid/sql/calcite/rel/DruidSemiJoin.java
index da50c04..c257303 100644
--- a/sql/src/main/java/io/druid/sql/calcite/rel/DruidSemiJoin.java
+++ b/sql/src/main/java/io/druid/sql/calcite/rel/DruidSemiJoin.java
@@ -44,6 +44,7 @@ import org.apache.calcite.rel.metadata.RelMetadataQuery;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.rex.RexInputRef;
import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexUtil;
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
import javax.annotation.Nullable;
@@ -345,12 +346,15 @@ public class DruidSemiJoin extends DruidRel<DruidSemiJoin>
newWhereFilter = whereFilter.copy(
whereFilter.getTraitSet(),
whereFilter.getInput(),
- makeAnd(ImmutableList.of(whereFilter.getCondition(), makeOr(conditions)))
+ RexUtil.flatten(
+ getCluster().getRexBuilder(),
+ makeAnd(ImmutableList.of(whereFilter.getCondition(), makeOr(conditions)))
+ )
);
} else {
newWhereFilter = LogicalFilter.create(
leftPartialQuery.getScan(),
- makeOr(conditions)
+ makeOr(conditions) // already in flattened form
);
}
diff --git a/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java b/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
index d8cdd14..6e4da26 100644
--- a/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
@@ -4658,7 +4658,7 @@ public class CalciteQueryTest extends CalciteTestBase
+ " FROM druid.foo\n"
+ " WHERE SUBSTRING(dim2, 1, 1) IN (\n"
+ " SELECT SUBSTRING(dim1, 1, 1) FROM druid.foo WHERE dim1 <> ''\n"
- + " )\n"
+ + " ) AND __time >= '2000-01-01' AND __time < '2002-01-01'\n"
+ ")",
ImmutableList.of(
GroupByQuery.builder()
@@ -4678,7 +4678,7 @@ public class CalciteQueryTest extends CalciteTestBase
new QueryDataSource(
GroupByQuery.builder()
.setDataSource(CalciteTests.DATASOURCE1)
- .setInterval(QSS(Filtration.eternity()))
+ .setInterval(QSS(Intervals.of("2000-01-01/2002-01-01")))
.setGranularity(Granularities.ALL)
.setDimFilter(IN(
"dim2",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org