set hive.druid.broker.address.default=localhost.test;

CREATE EXTERNAL TABLE druid_table_1_n3
STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
TBLPROPERTIES ("druid.datasource" = "wikipedia");

-- DESCRIBE FORMATTED druid_table_1_n3;

-- GRANULARITY: ALL
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` >= '2010-01-01 00:00:00 UTC' AND  `__time` <= '2012-03-01 00:00:00 UTC' OR  added <= 0;

EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00 UTC';

EXPLAIN
SELECT max(added), sum(variation)
FROM druid_table_1_n3;

-- GRANULARITY: NONE
EXPLAIN
SELECT `__time`, max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY `__time`;

-- GRANULARITY: YEAR
EXPLAIN
SELECT floor_year(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_year(`__time`);

-- @TODO FIXME https://issues.apache.org/jira/browse/CALCITE-2222
-- The current plan of this query is not optimal it can be planned as time series instead of scan
-- GRANULARITY: QUARTER
EXPLAIN
SELECT floor_quarter(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_quarter(`__time`);

-- GRANULARITY: MONTH
EXPLAIN
SELECT floor_month(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_month(`__time`);

-- GRANULARITY: WEEK
EXPLAIN
SELECT floor_week(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_week(`__time`);

-- GRANULARITY: DAY
EXPLAIN
SELECT floor_day(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_day(`__time`);

-- GRANULARITY: HOUR
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_hour(`__time`);

-- GRANULARITY: MINUTE
EXPLAIN
SELECT floor_minute(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_minute(`__time`);

-- GRANULARITY: SECOND
EXPLAIN
SELECT floor_second(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_second(`__time`);

-- WITH FILTER ON DIMENSION
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
WHERE robot='1'
GROUP BY floor_hour(`__time`);

-- WITH FILTER ON TIME
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
WHERE floor_hour(`__time`)
    BETWEEN CAST('2010-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
        AND CAST('2014-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
GROUP BY floor_hour(`__time`);

-- WITH FILTER ON TIME
EXPLAIN
SELECT subq.h, subq.m, subq.s
FROM
(
  SELECT floor_hour(`__time`) as h, max(added) as m, sum(variation) as s
  FROM druid_table_1_n3
  GROUP BY floor_hour(`__time`)
) subq
WHERE subq.h BETWEEN CAST('2010-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
        AND CAST('2014-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE);

-- Simplification of count(__time) as count(*) since time column is not null
EXPLAIN SELECT count(`__time`) from druid_table_1_n3;


EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00 UTC';

EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` >= '2010-01-01 00:00:00';


EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00' OR  `__time` <= '2012-03-01 00:00:00';
