You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2018/08/22 10:47:32 UTC

hive git commit: HIVE-20427 : Remove Druid Mock tests from CliDriver (Slim Bouguerra via Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master 25e747f53 -> 4d006f2a5


HIVE-20427 : Remove Druid Mock tests from CliDriver (Slim Bouguerra via Ashutosh Chauhan)

Signed-off-by: Ashutosh Chauhan <ha...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4d006f2a
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4d006f2a
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4d006f2a

Branch: refs/heads/master
Commit: 4d006f2a54686cba007d346bbef248be19facd69
Parents: 25e747f
Author: Slim Bouguerra <sl...@gmail.com>
Authored: Wed Aug 22 03:45:18 2018 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Wed Aug 22 03:45:18 2018 -0700

----------------------------------------------------------------------
 .../test/resources/testconfiguration.properties |   1 -
 .../test/queries/clientpositive/druid_basic1.q  |  18 --
 .../test/queries/clientpositive/druid_basic2.q  |  96 ------
 .../test/queries/clientpositive/druid_basic3.q  |  95 ------
 .../queries/clientpositive/druid_intervals.q    |  67 ----
 .../clientpositive/druidkafkamini_basic.q       |  54 ++++
 .../queries/clientpositive/druidmini_test_ts.q  |  60 ++++
 .../druid/druidkafkamini_basic.q.out            | 246 +++++++++++++++
 .../druid/druidmini_test_ts.q.out               | 304 +++++++++++++++++++
 9 files changed, 664 insertions(+), 277 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index af7f089..d2fe788 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -1710,7 +1710,6 @@ spark.perf.disabled.query.files=query14.q,\
 
 druid.query.files=druidmini_test1.q,\
   druidmini_test_ts.q,\
-  druid_basic2.q,\
   druidmini_joins.q,\
   druidmini_test_insert.q,\
   druidmini_mv.q,\

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druid_basic1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druid_basic1.q b/ql/src/test/queries/clientpositive/druid_basic1.q
deleted file mode 100644
index 83f5968..0000000
--- a/ql/src/test/queries/clientpositive/druid_basic1.q
+++ /dev/null
@@ -1,18 +0,0 @@
-set hive.druid.broker.address.default=localhost.test;
-
-CREATE EXTERNAL TABLE druid_table_1
-STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
-TBLPROPERTIES ("druid.datasource" = "wikipedia");
-
-DESCRIBE FORMATTED druid_table_1;
-
--- different table, same datasource
-CREATE EXTERNAL TABLE druid_table_2
-STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
-TBLPROPERTIES ("druid.datasource" = "wikipedia");
-
-DESCRIBE FORMATTED druid_table_2;
-
-DROP TABLE druid_table_2;
-
-DROP TABLE druid_table_1;

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druid_basic2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druid_basic2.q b/ql/src/test/queries/clientpositive/druid_basic2.q
deleted file mode 100644
index f1d215a..0000000
--- a/ql/src/test/queries/clientpositive/druid_basic2.q
+++ /dev/null
@@ -1,96 +0,0 @@
-set hive.strict.checks.cartesian.product=false;
-set hive.druid.broker.address.default=localhost.test;
-
-CREATE EXTERNAL TABLE druid_table_1_n2
-STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
-TBLPROPERTIES ("druid.datasource" = "wikipedia");
-
-DESCRIBE FORMATTED druid_table_1_n2;
-
--- dimension
-EXPLAIN EXTENDED
-SELECT robot FROM druid_table_1_n2;
-
--- metric
-EXPLAIN EXTENDED
-SELECT delta FROM druid_table_1_n2;
-
-EXPLAIN EXTENDED
-SELECT robot
-FROM druid_table_1_n2
-WHERE language = 'en';
-
-EXPLAIN EXTENDED
-SELECT DISTINCT robot
-FROM druid_table_1_n2
-WHERE language = 'en';
-
--- TODO: currently nothing is pushed - ISNOTNULL
-EXPLAIN EXTENDED
-SELECT a.robot, b.language
-FROM
-(
-  (SELECT robot, language
-  FROM druid_table_1_n2) a
-  JOIN
-  (SELECT language
-  FROM druid_table_1_n2) b
-  ON a.language = b.language
-);
-
-EXPLAIN EXTENDED
-SELECT a.robot, b.language
-FROM
-(
-  (SELECT robot, language
-  FROM druid_table_1_n2
-  WHERE language = 'en') a
-  JOIN
-  (SELECT language
-  FROM druid_table_1_n2) b
-  ON a.language = b.language
-);
-
-EXPLAIN EXTENDED
-SELECT robot, floor_day(`__time`), max(added) as m, sum(delta) as s
-FROM druid_table_1_n2
-GROUP BY robot, language, floor_day(`__time`)
-ORDER BY CAST(robot AS INTEGER) ASC, m DESC
-LIMIT 10;
-
-EXPLAIN
-SELECT substring(namespace, CAST(deleted AS INT), 4)
-FROM druid_table_1_n2;
-
-EXPLAIN
-SELECT robot, floor_day(`__time`)
-FROM druid_table_1_n2
-WHERE floor_day(`__time`) BETWEEN '1999-11-01 00:00:00' AND '1999-11-10 00:00:00'
-GROUP BY robot, floor_day(`__time`)
-ORDER BY robot
-LIMIT 10;
-
-EXPLAIN
-SELECT robot, `__time`
-FROM druid_table_1_n2
-WHERE floor_day(`__time`) BETWEEN '1999-11-01 00:00:00' AND '1999-11-10 00:00:00'
-GROUP BY robot, `__time`
-ORDER BY robot
-LIMIT 10;
-
-EXPLAIN
-SELECT robot, floor_day(`__time`)
-FROM druid_table_1_n2
-WHERE `__time` BETWEEN '1999-11-01 00:00:00' AND '1999-11-10 00:00:00'
-GROUP BY robot, floor_day(`__time`)
-ORDER BY robot
-LIMIT 10;
-
--- No CBO test: it should work
-set hive.cbo.enable=false;
-EXPLAIN EXTENDED
-SELECT robot, floor_day(`__time`), max(added) as m, sum(delta) as s
-FROM druid_table_1_n2
-GROUP BY robot, language, floor_day(`__time`)
-ORDER BY CAST(robot AS INTEGER) ASC, m DESC
-LIMIT 10;

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druid_basic3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druid_basic3.q b/ql/src/test/queries/clientpositive/druid_basic3.q
deleted file mode 100644
index f43b636..0000000
--- a/ql/src/test/queries/clientpositive/druid_basic3.q
+++ /dev/null
@@ -1,95 +0,0 @@
-set hive.strict.checks.cartesian.product=false;
-set hive.druid.broker.address.default=localhost.test;
-
-CREATE EXTERNAL TABLE druid_table_1_n4
-STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
-TBLPROPERTIES ("druid.datasource" = "wikipedia");
-
-EXPLAIN
-SELECT sum(added) + sum(delta) as a, language
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT sum(delta), sum(added) + sum(delta) AS a, language
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, sum(added) / sum(delta) AS a
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-        
-EXPLAIN
-SELECT language, sum(added) * sum(delta) AS a
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, sum(added) - sum(delta) AS a
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-        
-EXPLAIN
-SELECT language, sum(added) + 100 AS a
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, -1 * (a + b) AS c
-FROM (
-  SELECT (sum(added)-sum(delta)) / (count(*) * 3) AS a, sum(deleted) AS b, language
-  FROM druid_table_1_n4
-  GROUP BY language) subq
-ORDER BY c DESC;
-
-EXPLAIN
-SELECT language, robot, sum(added) - sum(delta) AS a
-FROM druid_table_1_n4
-WHERE extract (week from `__time`) IN (10,11)
-GROUP BY language, robot;
-
-EXPLAIN
-SELECT language, sum(delta) / count(*) AS a
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, sum(added) / sum(delta) AS a,
-       CASE WHEN sum(deleted)=0 THEN 1.0 ELSE sum(deleted) END AS b
-FROM druid_table_1_n4
-GROUP BY language
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, a, a - b as c
-FROM (
-  SELECT language, sum(added) + 100 AS a, sum(delta) AS b
-  FROM druid_table_1_n4
-  GROUP BY language) subq
-ORDER BY a DESC;
-
-EXPLAIN
-SELECT language, robot, "A"
-FROM (
-  SELECT sum(added) - sum(delta) AS a, language, robot
-  FROM druid_table_1_n4
-  GROUP BY language, robot ) subq
-ORDER BY "A"
-LIMIT 5;
-
-EXPLAIN
-SELECT language, robot, "A"
-FROM (
-  SELECT language, sum(added) + sum(delta) AS a, robot
-  FROM druid_table_1_n4
-  GROUP BY language, robot) subq
-ORDER BY robot, language
-LIMIT 5;

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druid_intervals.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druid_intervals.q b/ql/src/test/queries/clientpositive/druid_intervals.q
deleted file mode 100644
index a7ee052..0000000
--- a/ql/src/test/queries/clientpositive/druid_intervals.q
+++ /dev/null
@@ -1,67 +0,0 @@
-set hive.druid.broker.address.default=localhost.test;
-
-CREATE EXTERNAL TABLE druid_table_1_n0
-STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
-TBLPROPERTIES ("druid.datasource" = "wikipedia");
-
-DESCRIBE FORMATTED druid_table_1_n0;
-
--- (-∞‥+∞)
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0;
-
--- (-∞‥2012-03-01 00:00:00)
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE `__time` < '2012-03-01 00:00:00';
-
--- [2010-01-01 00:00:00‥2012-03-01 00:00:00)
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00';
-
--- [2010-01-01 00:00:00‥2011-01-01 00:00:00)
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
-    AND `__time` < '2011-01-01 00:00:00';
-
--- [2010-01-01 00:00:00‥2011-01-01 00:00:00]
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE `__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00';
-
--- [2010-01-01 00:00:00‥2011-01-01 00:00:00],[2012-01-01 00:00:00‥2013-01-01 00:00:00]
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
-    OR (`__time` BETWEEN '2012-01-01 00:00:00' AND '2013-01-01 00:00:00');
-
--- OVERLAP [2010-01-01 00:00:00‥2012-01-01 00:00:00]
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
-    OR (`__time` BETWEEN '2010-06-01 00:00:00' AND '2012-01-01 00:00:00');
-
--- IN: MULTIPLE INTERVALS [2010-01-01 00:00:00‥2010-01-01 00:00:00),[2011-01-01 00:00:00‥2011-01-01 00:00:00)
-EXPLAIN
-SELECT `__time`
-FROM druid_table_1_n0
-WHERE `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');
-
-EXPLAIN
-SELECT `__time`, robot
-FROM druid_table_1_n0
-WHERE robot = 'user1' AND `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');
-
-EXPLAIN
-SELECT `__time`, robot
-FROM druid_table_1_n0
-WHERE robot = 'user1' OR `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druidkafkamini_basic.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druidkafkamini_basic.q b/ql/src/test/queries/clientpositive/druidkafkamini_basic.q
index b9f817e..73593ef 100644
--- a/ql/src/test/queries/clientpositive/druidkafkamini_basic.q
+++ b/ql/src/test/queries/clientpositive/druidkafkamini_basic.q
@@ -72,4 +72,58 @@ FROM druid_kafka_test) b
   ON a.shortname = b.language
 ) order by b.`user`;
 
+
+EXPLAIN
+SELECT language, -1 * (a + b) AS c
+FROM (
+  SELECT (sum(added)-sum(deleted)) / (count(*) * 3) AS a, sum(deleted) AS b, language
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY c DESC;
+
+EXPLAIN
+SELECT language, `user`, sum(added) - sum(deleted) AS a
+FROM druid_kafka_test
+WHERE extract (week from `__time`) IN (10,11)
+GROUP BY language, `user`;
+
+EXPLAIN
+SELECT language, sum(deleted) / count(*) AS a
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC;
+
+EXPLAIN
+SELECT language, sum(added) / sum(deleted) AS a,
+       CASE WHEN sum(deleted)=0 THEN 1.0 ELSE sum(deleted) END AS b
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC;
+
+EXPLAIN
+SELECT language, a, a - b as c
+FROM (
+  SELECT language, sum(added) + 100 AS a, sum(deleted) AS b
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY a DESC;
+
+EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT sum(added) - sum(deleted) AS a, language, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user` ) subq
+ORDER BY "A"
+LIMIT 5;
+
+EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT language, sum(added) + sum(deleted) AS a, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user`) subq
+ORDER BY `user`, language
+LIMIT 5;
+
 DROP TABLE druid_kafka_test;

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/queries/clientpositive/druidmini_test_ts.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/druidmini_test_ts.q b/ql/src/test/queries/clientpositive/druidmini_test_ts.q
index 9e45ae6..b17da5a 100644
--- a/ql/src/test/queries/clientpositive/druidmini_test_ts.q
+++ b/ql/src/test/queries/clientpositive/druidmini_test_ts.q
@@ -62,3 +62,63 @@ SELECT `__time`
 FROM druid_table_test_ts
 WHERE (`__time` BETWEEN '1968-01-01 00:00:00' AND '1970-01-01 00:00:00')
     OR (`__time` BETWEEN '1968-02-01 00:00:00' AND '1970-04-01 00:00:00') ORDER BY `__time` ASC LIMIT 10;
+
+-- (-∞‥+∞)
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts;
+
+-- (-∞‥2012-03-01 00:00:00)
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` < '2012-03-01 00:00:00';
+
+-- [2010-01-01 00:00:00‥2012-03-01 00:00:00)
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00';
+
+-- [2010-01-01 00:00:00‥2011-01-01 00:00:00)
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
+    AND `__time` < '2011-01-01 00:00:00';
+
+-- [2010-01-01 00:00:00‥2011-01-01 00:00:00]
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00';
+
+-- [2010-01-01 00:00:00‥2011-01-01 00:00:00],[2012-01-01 00:00:00‥2013-01-01 00:00:00]
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2012-01-01 00:00:00' AND '2013-01-01 00:00:00');
+
+-- OVERLAP [2010-01-01 00:00:00‥2012-01-01 00:00:00]
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2010-06-01 00:00:00' AND '2012-01-01 00:00:00');
+
+-- IN: MULTIPLE INTERVALS [2010-01-01 00:00:00‥2010-01-01 00:00:00),[2011-01-01 00:00:00‥2011-01-01 00:00:00)
+EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');
+
+EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' AND `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');
+
+EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' OR `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00');

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out b/ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out
index f76a36d..c4b7b6e 100644
--- a/ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out
+++ b/ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out
@@ -500,6 +500,252 @@ english	nuclear
 english	nuclear
 english	speed
 english	speed
+PREHOOK: query: EXPLAIN
+SELECT language, -1 * (a + b) AS c
+FROM (
+  SELECT (sum(added)-sum(deleted)) / (count(*) * 3) AS a, sum(deleted) AS b, language
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY c DESC
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, -1 * (a + b) AS c
+FROM (
+  SELECT (sum(added)-sum(deleted)) / (count(*) * 3) AS a, sum(deleted) AS b, language
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY c DESC
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames language,c
+            druid.fieldTypes string,double
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","columns":[{"dimension":"c","direction":"descending","dimensionOrder":"numeric"}]},"aggregations":[{"type":"longSum","name":"$f1","fieldName":"added"},{"type":"longSum","name":"$f2","fieldName":"deleted"},{"type":"count","name":"$f3"}],"postAggregations":[{"type":"expression","name":"c","expression":"(-1.0 * ((CAST((\"$f1\" - \"$f2\"), 'DOUBLE') / CAST((\"$f3\" * 3), 'DOUBLE')) + CAST(\"$f2\", 'DOUBLE')))"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), c (type: double)
+            outputColumnNames: _col0, _col1
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, `user`, sum(added) - sum(deleted) AS a
+FROM druid_kafka_test
+WHERE extract (week from `__time`) IN (10,11)
+GROUP BY language, `user`
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, `user`, sum(added) - sum(deleted) AS a
+FROM druid_kafka_test
+WHERE extract (week from `__time`) IN (10,11)
+GROUP BY language, `user`
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames language,user,a
+            druid.fieldTypes string,string,bigint
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"user","outputName":"user","outputType":"STRING"},{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default"},"filter":{"type":"in","dimension":"__time","values":["10","11"],"extractionFn":{"type":"timeFormat","format":"w","timeZone":"UTC","locale":"en-US"}},"aggregations":[{"type":"longSum","name":"$f2","fieldName":"added"},{"type":"longSum","name":"$f3","fieldName":"deleted"}],"postAggregations":[{"type":"expression","name":"a","expression":"(\"$f2\" - \"$f3\")"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), user (type: string), a (type: bigint)
+            outputColumnNames: _col0, _col1, _col2
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, sum(deleted) / count(*) AS a
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, sum(deleted) / count(*) AS a
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames language,a
+            druid.fieldTypes string,double
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","columns":[{"dimension":"a","direction":"descending","dimensionOrder":"numeric"}]},"aggregations":[{"type":"longSum","name":"$f1","fieldName":"deleted"},{"type":"count","name":"$f2"}],"postAggregations":[{"type":"expression","name":"a","expression":"(CAST(\"$f1\", 'DOUBLE') / CAST(\"$f2\", 'DOUBLE'))"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), a (type: double)
+            outputColumnNames: _col0, _col1
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, sum(added) / sum(deleted) AS a,
+       CASE WHEN sum(deleted)=0 THEN 1.0 ELSE sum(deleted) END AS b
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, sum(added) / sum(deleted) AS a,
+       CASE WHEN sum(deleted)=0 THEN 1.0 ELSE sum(deleted) END AS b
+FROM druid_kafka_test
+GROUP BY language
+ORDER BY a DESC
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames language,a,b
+            druid.fieldTypes string,double,decimal(19,0)
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","columns":[{"dimension":"a","direction":"descending","dimensionOrder":"numeric"}]},"aggregations":[{"type":"longSum","name":"$f1","fieldName":"added"},{"type":"longSum","name":"$f2","fieldName":"deleted"}],"postAggregations":[{"type":"expression","name":"a","expression":"(CAST(\"$f1\", 'DOUBLE') / CAST(\"$f2\", 'DOUBLE'))"},{"type":"expression","name":"b","expression":"case_searched((\"$f2\" == 0),1,\"$f2\")"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), a (type: double), b (type: decimal(19,0))
+            outputColumnNames: _col0, _col1, _col2
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, a, a - b as c
+FROM (
+  SELECT language, sum(added) + 100 AS a, sum(deleted) AS b
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY a DESC
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, a, a - b as c
+FROM (
+  SELECT language, sum(added) + 100 AS a, sum(deleted) AS b
+  FROM druid_kafka_test
+  GROUP BY language) subq
+ORDER BY a DESC
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames language,a,c
+            druid.fieldTypes string,bigint,bigint
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","columns":[{"dimension":"a","direction":"descending","dimensionOrder":"numeric"}]},"aggregations":[{"type":"longSum","name":"$f1","fieldName":"added"},{"type":"longSum","name":"$f2","fieldName":"deleted"}],"postAggregations":[{"type":"expression","name":"a","expression":"(\"$f1\" + 100)"},{"type":"expression","name":"c","expression":"((\"$f1\" + 100) - \"$f2\")"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), a (type: bigint), c (type: bigint)
+            outputColumnNames: _col0, _col1, _col2
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT sum(added) - sum(deleted) AS a, language, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user` ) subq
+ORDER BY "A"
+LIMIT 5
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT sum(added) - sum(deleted) AS a, language, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user` ) subq
+ORDER BY "A"
+LIMIT 5
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames user,language
+            druid.fieldTypes string,string
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"user","outputName":"user","outputType":"STRING"},{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","limit":5,"columns":[]},"aggregations":[],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), user (type: string), 'A' (type: string)
+            outputColumnNames: _col0, _col1, _col2
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT language, sum(added) + sum(deleted) AS a, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user`) subq
+ORDER BY `user`, language
+LIMIT 5
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT language, `user`, "A"
+FROM (
+  SELECT language, sum(added) + sum(deleted) AS a, `user`
+  FROM druid_kafka_test
+  GROUP BY language, `user`) subq
+ORDER BY `user`, language
+LIMIT 5
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_kafka_test
+          properties:
+            druid.fieldNames user,language
+            druid.fieldTypes string,string
+            druid.query.json {"queryType":"groupBy","dataSource":"default.druid_kafka_test","granularity":"all","dimensions":[{"type":"default","dimension":"user","outputName":"user","outputType":"STRING"},{"type":"default","dimension":"language","outputName":"language","outputType":"STRING"}],"limitSpec":{"type":"default","limit":5,"columns":[{"dimension":"user","direction":"ascending","dimensionOrder":"lexicographic"},{"dimension":"language","direction":"ascending","dimensionOrder":"lexicographic"}]},"aggregations":[],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]}
+            druid.query.type groupBy
+          Select Operator
+            expressions: language (type: string), user (type: string), 'A' (type: string)
+            outputColumnNames: _col0, _col1, _col2
+            ListSink
+
 PREHOOK: query: DROP TABLE druid_kafka_test
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@druid_kafka_test

http://git-wip-us.apache.org/repos/asf/hive/blob/4d006f2a/ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out b/ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out
index 879e2a7..a8e6894 100644
--- a/ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out
+++ b/ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out
@@ -261,3 +261,307 @@ POSTHOOK: Output: hdfs://### HDFS PATH ###
 1969-12-31 15:59:00
 1969-12-31 15:59:00
 1969-12-31 15:59:00
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` < '2012-03-01 00:00:00'
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` < '2012-03-01 00:00:00'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["1900-01-01T00:00:00.000Z/2012-03-01T00:00:00.000Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2012-03-01T00:00:00.001Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
+    AND `__time` < '2011-01-01 00:00:00'
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` >= '2010-01-01 00:00:00' AND `__time` <= '2012-03-01 00:00:00'
+    AND `__time` < '2011-01-01 00:00:00'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2011-01-01T00:00:00.000Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00'
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2011-01-01T00:00:00.001Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2012-01-01 00:00:00' AND '2013-01-01 00:00:00')
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2012-01-01 00:00:00' AND '2013-01-01 00:00:00')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2011-01-01T00:00:00.001Z","2012-01-01T00:00:00.000Z/2013-01-01T00:00:00.001Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2010-06-01 00:00:00' AND '2012-01-01 00:00:00')
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE (`__time` BETWEEN '2010-01-01 00:00:00' AND '2011-01-01 00:00:00')
+    OR (`__time` BETWEEN '2010-06-01 00:00:00' AND '2012-01-01 00:00:00')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2012-01-01T00:00:00.001Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`
+FROM druid_table_test_ts
+WHERE `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc
+            druid.fieldTypes timestamp
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2010-01-01T00:00:00.001Z","2011-01-01T00:00:00.000Z/2011-01-01T00:00:00.001Z"],"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp)
+            outputColumnNames: _col0
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' AND `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' AND `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc,vc0
+            druid.fieldTypes timestamp,string
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["2010-01-01T00:00:00.000Z/2010-01-01T00:00:00.001Z","2011-01-01T00:00:00.000Z/2011-01-01T00:00:00.001Z"],"filter":{"type":"selector","dimension":"cstring2","value":"user1"},"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"},{"type":"expression","name":"vc0","expression":"'user1'","outputType":"STRING"}],"columns":["vc","vc0"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp), vc0 (type: string)
+            outputColumnNames: _col0, _col1
+            ListSink
+
+PREHOOK: query: EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' OR `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT `__time`, cstring2
+FROM druid_table_test_ts
+WHERE cstring2 = 'user1' OR `__time` IN ('2010-01-01 00:00:00','2011-01-01 00:00:00')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-0 is a root stage
+
+STAGE PLANS:
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        TableScan
+          alias: druid_table_test_ts
+          properties:
+            druid.fieldNames vc,cstring2
+            druid.fieldTypes timestamp,string
+            druid.query.json {"queryType":"scan","dataSource":"default.druid_table_test_ts","intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"],"filter":{"type":"or","fields":[{"type":"selector","dimension":"cstring2","value":"user1"},{"type":"selector","dimension":"__time","value":"2010-01-01T00:00:00.000Z","extractionFn":{"type":"timeFormat","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","timeZone":"UTC"}},{"type":"selector","dimension":"__time","value":"2011-01-01T00:00:00.000Z","extractionFn":{"type":"timeFormat","format":"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","timeZone":"UTC"}}]},"virtualColumns":[{"type":"expression","name":"vc","expression":"\"__time\"","outputType":"LONG"}],"columns":["vc","cstring2"],"resultFormat":"compactedList"}
+            druid.query.type scan
+          Select Operator
+            expressions: vc (type: timestamp), cstring2 (type: string)
+            outputColumnNames: _col0, _col1
+            ListSink
+