You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (Jira)" <ji...@apache.org> on 2021/12/13 14:37:00 UTC

[jira] [Updated] (IGNITE-16107) Calcite engine. Project and filters are not merged into scan node correctly

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