This is an automated email from the ASF dual-hosted git repository.
gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new e76a5077ef Fix self-referential shape inspection in
BaseExpressionColumnValueSelector. (#12669)
e76a5077ef is described below
commit e76a5077efe64ea3108ff1133339c1ba5d19163f
Author: Gian Merlino <[email protected]>
AuthorDate: Fri Jun 17 16:15:50 2022 -0700
Fix self-referential shape inspection in BaseExpressionColumnValueSelector.
(#12669)
* Fix self-referential shape inspection in
BaseExpressionColumnValueSelector.
The new test would throw StackOverflowError on the old code.
* Restore prior test.
---
.../virtual/BaseExpressionColumnValueSelector.java | 2 +-
.../druid/query/topn/TopNQueryRunnerTest.java | 42 ++++++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
diff --git
a/processing/src/main/java/org/apache/druid/segment/virtual/BaseExpressionColumnValueSelector.java
b/processing/src/main/java/org/apache/druid/segment/virtual/BaseExpressionColumnValueSelector.java
index 868196c600..a9fd30a130 100644
---
a/processing/src/main/java/org/apache/druid/segment/virtual/BaseExpressionColumnValueSelector.java
+++
b/processing/src/main/java/org/apache/druid/segment/virtual/BaseExpressionColumnValueSelector.java
@@ -86,7 +86,7 @@ public abstract class BaseExpressionColumnValueSelector
implements ColumnValueSe
@Override
public void inspectRuntimeShape(final RuntimeShapeInspector inspector)
{
- inspector.visit("rowIdSupplier", this);
+ inspector.visit("rowIdSupplier", rowIdSupplier);
}
/**
diff --git
a/processing/src/test/java/org/apache/druid/query/topn/TopNQueryRunnerTest.java
b/processing/src/test/java/org/apache/druid/query/topn/TopNQueryRunnerTest.java
index 2a2f0c68b6..d475cc9f7f 100644
---
a/processing/src/test/java/org/apache/druid/query/topn/TopNQueryRunnerTest.java
+++
b/processing/src/test/java/org/apache/druid/query/topn/TopNQueryRunnerTest.java
@@ -4614,6 +4614,48 @@ public class TopNQueryRunnerTest extends
InitializedNullHandlingTest
assertExpectedResults(expectedResults, query);
}
+ @Test
+ public void testFullOnTopNAggregateLongVirtualColumn()
+ {
+ TopNQuery query = new TopNQueryBuilder()
+ .dataSource(QueryRunnerTestHelper.DATA_SOURCE)
+ .granularity(QueryRunnerTestHelper.ALL_GRAN)
+ .virtualColumns(new ExpressionVirtualColumn("v0", "index",
ColumnType.LONG, ExprMacroTable.nil()))
+ .dimension(new DefaultDimensionSpec("quality", "quality"))
+ .metric("sumIndex")
+ .threshold(4)
+ .intervals(QueryRunnerTestHelper.FULL_ON_INTERVAL_SPEC)
+ .aggregators(Collections.singletonList(new
LongSumAggregatorFactory("sumIndex", "v0")))
+ .build();
+
+ List<Result<TopNResultValue>> expectedResults = Collections.singletonList(
+ new Result<>(
+ DateTimes.of("2011-01-12T00:00:00.000Z"),
+ new TopNResultValue(
+ Arrays.<Map<String, Object>>asList(
+ ImmutableMap.<String, Object>builder()
+ .put("quality", "mezzanine")
+ .put("sumIndex", 217586L)
+ .build(),
+ ImmutableMap.<String, Object>builder()
+ .put("quality", "premium")
+ .put("sumIndex", 210722L)
+ .build(),
+ ImmutableMap.<String, Object>builder()
+ .put("quality", "automotive")
+ .put("sumIndex", 12226L)
+ .build(),
+ ImmutableMap.<String, Object>builder()
+ .put("quality", "entertainment")
+ .put("sumIndex", 12038L)
+ .build()
+ )
+ )
+ )
+ );
+ assertExpectedResults(expectedResults, query);
+ }
+
@Test
public void testTopNStringVirtualColumn()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]