You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Alessandro Solimando (Jira)" <ji...@apache.org> on 2022/01/21 10:48:00 UTC

[jira] [Updated] (CALCITE-4991) Improve RuleEventLogger to also print input rels in FULL_PLAN mode

     [ https://issues.apache.org/jira/browse/CALCITE-4991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alessandro Solimando updated CALCITE-4991:
------------------------------------------
    Summary: Improve RuleEventLogger to also print input rels in FULL_PLAN mode  (was: Improve RuleLogger to also print input rels in FULL_PLAN mode)

> Improve RuleEventLogger to also print input rels in FULL_PLAN mode
> ------------------------------------------------------------------
>
>                 Key: CALCITE-4991
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4991
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.29.0
>            Reporter: Alessandro Solimando
>            Assignee: Alessandro Solimando
>            Priority: Major
>
> After using for some time now the new plan logging capabilities introduced via _RuleEventLogger_ in CALCITE-4704, only printing the new rel produced by a rule is not enough for complex cases, because the input rel(s) used by the rule are not printed, and sometimes they are nowhere in the logs, making it hard to understand what situation caused the appearance of a given plan of interest.
> The present ticket aims at additionally printing, for _FULL_PLAN_ marker, the input rels used by a given rule, before printing the output rel produced by the rule application.
> The output logs would evolve from:
> {noformat}
> 022-01-21T02:41:27,466 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Apply rule [HiveProjectFilterPullUpConstantsRule] to [rel#45:HiveProject,rel#56:HiveFilter]
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Rule [HiveProjectFilterPullUpConstantsRule] produced [rel#58:HiveProject]
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Full plan for [rel#58:HiveProject]:
> HiveProject(month=[CAST(202110):INTEGER])
>   HiveFilter(condition=[=($0, 202110)])
>     HiveTableScan(table=[[default, test2]], table:alias=[test2])
> {noformat}
> to:
> {noformat}
> 022-01-21T02:41:27,466 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Apply rule [HiveProjectFilterPullUpConstantsRule] to [rel#45:HiveProject,rel#56:HiveFilter]
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Full plan for rule input [rel#45:HiveProject]:
> HiveProject(month=[$0])
>   HiveFilter(condition=[=($0, 202110)])
>     HiveTableScan(table=[[default, test2]], table:alias=[test2])
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Full plan for rule input [rel#56:HiveFilter]:
> HiveFilter(condition=[=($0, 202110)])
>   HiveTableScan(table=[[default, test2]], table:alias=[test2])
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Rule [HiveProjectFilterPullUpConstantsRule] produced [rel#58:HiveProject]
> 2022-01-21T02:41:27,468 DEBUG [02c3a9eb-0565-404f-9c56-a2bbb556c827 main] calcite.RuleEventLogger: call#5: Full plan for [rel#58:HiveProject]:
> HiveProject(month=[CAST(202110):INTEGER])
>   HiveFilter(condition=[=($0, 202110)])
>     HiveTableScan(table=[[default, test2]], table:alias=[test2])
> {noformat}



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