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)

Reply via email to