[
https://issues.apache.org/jira/browse/IGNITE-16107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksey Plekhanov updated IGNITE-16107:
---------------------------------------
Description:
{{ProjectScanMergeRule}} and {{FilterScanMergeRule}} have several issues:
# {{FilterScanMergeRule}} is not applied on the HEP phase, and due to this in
most cases {{ProjectScanMergeRule}} can't be correctly applied in the HEP phase
too. There are several useless transformations that can be avoided if
{{FilterScanMergeRule}} will be applied (for example, in trivial scan with
projects and filter, new projects created below filter in
{{{}trimUnusedFields{}}}, then these projects moved above filter in
{{FilterProjectTranposeRule}}, then top-level projects and trim-projects merged
in {{{}ProjectMergeRule{}}}, then project created below filter again in
{{ProjectFilterTranposeRule}}, then it merged into scan by
{{ProjectScanMergeRule}} and prevents to merge top-level project later).
# {{ProjectScanMergeRule.INDEX_SCAN_SKIP_CORRELATED}} is useless since there
are no index scans on the HEP phase.
# Traits are created for logical nodes (in some cases, not correct traits),
but it's redundant (only physical nodes require traits).
# {{ProjectScanMergeRule}} can't merge projects if another project is already
merged into a scan.
was:
{{ProjectScanMergeRule}} and {{FilterScanMergeRule}} have several issues:
# {{FilterScanMergeRule}} is not applied on the HEP phase, and due to this in
most cases {{ProjectScanMergeRule}} can't be correctly applied in the HEP phase
too. There are several useless transformations that can be avoided if
{{FilterScanMergeRule}} will apply (for example, in trivial scan with projects
and filter, new projects created below filter in {{{}trimUnusedFields{}}}, then
this projects moved above filter in {{{}FilterProjectTranposeRule{}}}, then
top-level projects and trim-projects merged in {{{}ProjectMergeRule{}}}, then
project created below filter again in {{{}ProjectFilterTranposeRule{}}}, then
it merged into scan by {{ProjectScanMergeRule}} and prevents to merge top-level
project later).
# {{ProjectScanMergeRule.INDEX_SCAN_SKIP_CORRELATED}} is useless since there
are no index scans on the HEP phase.
# Traits are created for logical nodes (in some cases not correct), but it's
redundant (only physical nodes require traits).
# {{ProjectScanMergeRule}} can't merge projects if another project is already
merged into a scan.
> Calcite engine. Project and filters are not merged into scan node correctly
> ---------------------------------------------------------------------------
>
> Key: IGNITE-16107
> URL: https://issues.apache.org/jira/browse/IGNITE-16107
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksey Plekhanov
> Assignee: Aleksey Plekhanov
> Priority: Major
> Labels: calcite2-required, calcite3-required
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {{ProjectScanMergeRule}} and {{FilterScanMergeRule}} have several issues:
> # {{FilterScanMergeRule}} is not applied on the HEP phase, and due to this
> in most cases {{ProjectScanMergeRule}} can't be correctly applied in the HEP
> phase too. There are several useless transformations that can be avoided if
> {{FilterScanMergeRule}} will be applied (for example, in trivial scan with
> projects and filter, new projects created below filter in
> {{{}trimUnusedFields{}}}, then these projects moved above filter in
> {{FilterProjectTranposeRule}}, then top-level projects and trim-projects
> merged in {{{}ProjectMergeRule{}}}, then project created below filter again
> in {{ProjectFilterTranposeRule}}, then it merged into scan by
> {{ProjectScanMergeRule}} and prevents to merge top-level project later).
> # {{ProjectScanMergeRule.INDEX_SCAN_SKIP_CORRELATED}} is useless since there
> are no index scans on the HEP phase.
> # Traits are created for logical nodes (in some cases, not correct traits),
> but it's redundant (only physical nodes require traits).
> # {{ProjectScanMergeRule}} can't merge projects if another project is
> already merged into a scan.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)