You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2021/12/16 14:25:00 UTC

[jira] [Created] (HIVE-25816) Log CBO plan after rule application for debugging purposes

Stamatis Zampetakis created HIVE-25816:
------------------------------------------

             Summary: Log CBO plan after rule application for debugging purposes
                 Key: HIVE-25816
                 URL: https://issues.apache.org/jira/browse/HIVE-25816
             Project: Hive
          Issue Type: Task
          Components: CBO
            Reporter: Stamatis Zampetakis
            Assignee: Stamatis Zampetakis


In many cases, we want to identify which rule lead to a certain transformation in the plan or need to observe how the query plan evolves by applying some rules in order to fix some bug or find the right place to introduce another optimization step.

Currently there are some logs during the application of a rule triggered by the [HepPlanner|https://github.com/apache/calcite/blob/e04f3b08dcfb6910ff4df3810772c346b25ed424/core/src/main/java/org/apache/calcite/plan/AbstractRelOptPlanner.java#L367] and [VolcanoPlanner|https://github.com/apache/calcite/blob/e04f3b08dcfb6910ff4df3810772c346b25ed424/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoRuleCall.java#L126] but they more or less display only the top operator of the transformation and not the whole subtree. 

It would help if instead of displaying only the top operator we logged the equivalent of {{EXPLAIN CBO}} on the transformed sub-tree. 

The change is going to be introduced soon by default in Calcite (CALCITE-4704) but till we update to that version it would help to have this functionality already in Hive.

For more examples about the proposed change have a look in CALCITE-4704.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)