You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by ab...@apache.org on 2021/11/25 15:40:26 UTC

[druid] branch master updated: Fix: Do not require time condition on InlineDataSource (#11982)

This is an automated email from the ASF dual-hosted git repository.

abhishek 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 b48f5a5  Fix: Do not require time condition on InlineDataSource (#11982)
b48f5a5 is described below

commit b48f5a576b300149e92167e16ecf70b8c6c34b27
Author: Kashif Faraz <ka...@gmail.com>
AuthorDate: Thu Nov 25 21:10:06 2021 +0530

    Fix: Do not require time condition on InlineDataSource (#11982)
    
    For queries on logical values, e.g. SELECT 1337, we need not check for
    a filter on __time column even if requireTimeCondition is true.
---
 .../druid/sql/calcite/run/NativeQueryMaker.java    |  4 +++-
 .../apache/druid/sql/calcite/CalciteQueryTest.java | 23 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/sql/src/main/java/org/apache/druid/sql/calcite/run/NativeQueryMaker.java b/sql/src/main/java/org/apache/druid/sql/calcite/run/NativeQueryMaker.java
index 3f656d0..d160230 100644
--- a/sql/src/main/java/org/apache/druid/sql/calcite/run/NativeQueryMaker.java
+++ b/sql/src/main/java/org/apache/druid/sql/calcite/run/NativeQueryMaker.java
@@ -38,6 +38,7 @@ import org.apache.druid.java.util.common.Intervals;
 import org.apache.druid.java.util.common.guava.Sequence;
 import org.apache.druid.java.util.common.guava.Sequences;
 import org.apache.druid.math.expr.Evals;
+import org.apache.druid.query.InlineDataSource;
 import org.apache.druid.query.Query;
 import org.apache.druid.query.QueryToolChest;
 import org.apache.druid.query.planning.DataSourceAnalysis;
@@ -113,7 +114,8 @@ public class NativeQueryMaker implements QueryMaker
   {
     final Query<?> query = druidQuery.getQuery();
 
-    if (plannerContext.getPlannerConfig().isRequireTimeCondition()) {
+    if (plannerContext.getPlannerConfig().isRequireTimeCondition()
+        && !(druidQuery.getDataSource() instanceof InlineDataSource)) {
       if (Intervals.ONLY_ETERNITY.equals(findBaseDataSourceIntervals(query))) {
         throw new CannotBuildQueryException(
             "requireTimeCondition is enabled, all queries must include a filter condition on the __time column"
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 e2b0a24..c0736cc 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
@@ -11336,6 +11336,29 @@ public class CalciteQueryTest extends BaseCalciteQueryTest
   }
 
   @Test
+  public void testRequireTimeConditionLogicalValuePositive() throws Exception
+  {
+    testQuery(
+        PLANNER_CONFIG_REQUIRE_TIME_CONDITION,
+        "SELECT 2 + 2 AS a",
+        CalciteTests.REGULAR_USER_AUTH_RESULT,
+        ImmutableList.of(
+            newScanQueryBuilder()
+                .dataSource(InlineDataSource.fromIterable(
+                    ImmutableList.of(new Object[]{4L}),
+                    RowSignature.builder().add("a", ColumnType.LONG).build()
+                ))
+                .columns("a")
+                .intervals(querySegmentSpec(Filtration.eternity()))
+                .resultFormat(ScanQuery.ResultFormat.RESULT_FORMAT_COMPACTED_LIST)
+                .context(QUERY_CONTEXT_DEFAULT)
+                .build()
+        ),
+        ImmutableList.of(new Object[]{4})
+    );
+  }
+
+  @Test
   public void testRequireTimeConditionSimpleQueryNegative() throws Exception
   {
     expectedException.expect(CannotBuildQueryException.class);

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org