Konstantin Bereznyakov created HIVE-29559:
---------------------------------------------
Summary: HIVE-28724 regression: SemanticAnalyzer.materializeCTE
uses wrong analyzer class
Key: HIVE-29559
URL: https://issues.apache.org/jira/browse/HIVE-29559
Project: Hive
Issue Type: Bug
Reporter: Konstantin Bereznyakov
CalcitePlanner.materializeCTE was fixed to use CreateTableAnalyzer in HIVE-28724
However, SemanticAnalyzer.materializeCTE still uses SemanticAnalyzer directly.
Bug triggers when: CBO disabled + non-aggregate CTE materialization
The following very simple .q file reproduces the NPE on the current master:
{code:java}
set hive.optimize.cte.materialize.full.aggregate.only=false;
set hive.cbo.enable=false;
explain
WITH cte AS (
SELECT 1 as id
)
SELECT * FROM cte
UNION ALL
SELECT * FROM cte
UNION ALL
SELECT * FROM cte; {code}
{code:java}
ERROR] Failures:[ERROR] TestMiniLlapCliDriver.testCliDriver:62 Client
execution failed with error code = 40000running
explainWITH cte AS ( SELECT 1 as id)SELECT * FROM cteUNION ALLSELECT * FROM
cteUNION ALLSELECT * FROM ctefname=cte_materialize_non_aggr_npe.q
See ./ql/target/tmp/log/hive.log or ./itests/qtest/target/tmp/log/hive.log, or
check ./ql/target/surefire-reports or ./itests/qtest/target/surefire-reports/
for specific test cases logs. java.lang.NullPointerException: Cannot invoke
"org.apache.hadoop.hive.ql.ddl.table.create.CreateTableDesc.toTable(org.apache.hadoop.hive.conf.HiveConf)"
because "analyzer.tableDesc" is null at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.materializeCTE(SemanticAnalyzer.java:1585)
at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:2402)
at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:2350)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)