[
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)