Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.20.0
-
None
-
None
-
OS: centos 7
Description
In the runtime environment of drill, there are two storage plugins, Elasticsearch and hive. When querying a table in hive, the error message is as follows:
Caused by: java.lang.AssertionError: ELASTICSEARCH != NONE
at org.apache.calcite.adapter.elasticsearch.ElasticsearchAggregate.<init>(ElasticsearchAggregate.java:66)
at org.apache.calcite.adapter.elasticsearch.ElasticsearchAggregate.copy(ElasticsearchAggregate.java:112)
at org.apache.calcite.rel.core.Aggregate.copy(Aggregate.java:211)
at org.apache.calcite.rel.rules.FilterAggregateTransposeRule.onMatch(FilterAggregateTransposeRule.java:128)
at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:208)
at org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:633)
at org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:327)
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:405)
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:351)
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel(DefaultSqlHandler.java:245)
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:308)
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:173)
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(DrillSqlWorker.java:399)
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(DrillSqlWorker.java:181)
at org.apache.drill.exec.planner.sql.DrillSqlWorker.convertPlan(DrillSqlWorker.java:146)
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:111)
at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:593)
at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:274)
Query sql as follow:
WITH res AS (
SELECT sr_store_sk AS ctr_store_sk, SUM(SR_FEE) AS ctr_total_return
FROM `hive`.`tpcds`.`store_returns`
GROUP BY sr_store_sk
)
SELECT t1.ctr_total_return
FROM res t1
WHERE t1.ctr_total_return > (
SELECT AVG(ctr_total_return)
FROM res t2
WHERE t1.ctr_store_sk = t2.ctr_store_sk
);
The ddl of `hive`.`tpcds`.`store_returns` as follow:
create table store_returns
(
sr_returned_date_sk int ,
sr_return_time_sk int ,
sr_item_sk int ,
sr_customer_sk int ,
sr_cdemo_sk int ,
sr_hdemo_sk int ,
sr_addr_sk int ,
sr_store_sk int ,
sr_reason_sk int ,
sr_ticket_number int ,
sr_return_quantity int ,
sr_return_amt decimal(7,2) ,
sr_return_tax decimal(7,2) ,
sr_return_amt_inc_tax decimal(7,2) ,
sr_fee decimal(7,2) ,
sr_return_ship_cost decimal(7,2) ,
sr_refunded_cash decimal(7,2) ,
sr_reversed_charge decimal(7,2) ,
sr_store_credit decimal(7,2) ,
sr_net_loss decimal(7,2)
)row format delimited fields terminated by '|'
NULL DEFINED AS ''
STORED AS TEXTFILE;