okumin created HIVE-28098:
-----------------------------

             Summary: Fails to generate statistics of materialized CTE
                 Key: HIVE-28098
                 URL: https://issues.apache.org/jira/browse/HIVE-28098
             Project: Hive
          Issue Type: Bug
          Components: Query Planning
            Reporter: okumin
            Assignee: okumin


HIVE-28080 introduced the optimization of materialized CTEs, but it turned out 
that it failed when statistics were empty.

This query reproduces the issue.
{code:java}
set hive.stats.autogather=false;
CREATE TABLE src_no_stats AS SELECT '123' as key, 'val123' as value UNION ALL 
SELECT '99999' as key, 'val99999' as value;
set hive.optimize.cte.materialize.threshold=2;
set hive.optimize.cte.materialize.full.aggregate.only=false;

EXPLAIN WITH materialized_cte1 AS (
  SELECT * FROM src_no_stats
),
materialized_cte2 AS (
  SELECT a.key
  FROM materialized_cte1 a
  JOIN materialized_cte1 b ON (a.key = b.key)
)
SELECT a.key
FROM materialized_cte2 a
JOIN materialized_cte2 b ON (a.key = b.key); {code}
It throws an error.
{code:java}
Error: Error while compiling statement: FAILED: IllegalStateException The size 
of col stats must be equal to that of schema. Stats = [], Schema = [key] 
(state=42000,code=40000) {code}
Attaching a debugger, FSO of materialized_cte2 has empty stats as JoinOperator 
loses stats.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to