diff --git itests/src/test/resources/testconfiguration.properties itests/src/test/resources/testconfiguration.properties index af7f089975..d2fe78851a 100644 --- itests/src/test/resources/testconfiguration.properties +++ 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,\ diff --git ql/src/test/queries/clientpositive/druid_basic1.q ql/src/test/queries/clientpositive/druid_basic1.q deleted file mode 100644 index 83f5968dc2..0000000000 --- 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; diff --git ql/src/test/queries/clientpositive/druid_basic2.q ql/src/test/queries/clientpositive/druid_basic2.q deleted file mode 100644 index f1d215aa8a..0000000000 --- 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; diff --git ql/src/test/queries/clientpositive/druid_basic3.q ql/src/test/queries/clientpositive/druid_basic3.q deleted file mode 100644 index f43b6365fb..0000000000 --- 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; diff --git ql/src/test/queries/clientpositive/druid_intervals.q ql/src/test/queries/clientpositive/druid_intervals.q deleted file mode 100644 index a7ee052ab5..0000000000 --- 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'); diff --git ql/src/test/queries/clientpositive/druidkafkamini_basic.q ql/src/test/queries/clientpositive/druidkafkamini_basic.q index b9f817eb20..73593ef0b3 100644 --- ql/src/test/queries/clientpositive/druidkafkamini_basic.q +++ 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; diff --git ql/src/test/queries/clientpositive/druidmini_test_ts.q ql/src/test/queries/clientpositive/druidmini_test_ts.q index 9e45ae601e..b17da5a97b 100644 --- ql/src/test/queries/clientpositive/druidmini_test_ts.q +++ 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'); diff --git ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out index f76a36d249..c4b7b6ef6c 100644 --- ql/src/test/results/clientpositive/druid/druidkafkamini_basic.q.out +++ 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 diff --git ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out index 879e2a7f7b..a8e6894a97 100644 --- ql/src/test/results/clientpositive/druid/druidmini_test_ts.q.out +++ 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 +