drill
drill copied to clipboard
Unexpected exception during fragment initialization: ELASTICSEARCH != NONE
Describe the bug 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)
To Reproduce Steps to reproduce the behavior:
- The ddl of
hive.tpcds.store_returnsas 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;
- 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
);
Expected behavior execute correctly.
Desktop (please complete the following information):
- OS: Centos7
- Version: 1.20
@guihui123456 We are about to merge a significant pull request which updates Calcite to the latest version. I would be curious as to whether this solves this.
@guihui123456 We are about to merge a significant pull request which updates Calcite to the latest version. I would be curious as to whether this solves this.
@cgivre This issue is fixed in the latest version.