[
https://issues.apache.org/jira/browse/CALCITE-7234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhen Chen updated CALCITE-7234:
-------------------------------
Description:
*Problem:*
When "SortRemoveDuplicateKeysRule" removes redundant sort keys (based on
functional dependencies), the Volcano optimizer rejects the simplified Sort
because the optimized collation doesn't strictly match the original prefix.
*Example:*
- Original collation: [0, 1](sort by field 0, then field 1)
- Optimized collation: [0](field 1 is functionally determined by field 0)
The optimizer requires exact prefix matching, even though the optimized
collation is semantically equivalent. This prevents
"SortRemoveDuplicateKeysRule" from working effectively in VolcanoPlanner.
*Solution:*
Modify trait satisfaction logic to recognize FD-optimized collations as valid
when they preserve semantic ordering.
was:
**Problem:**
When "SortRemoveDuplicateKeysRule" removes redundant sort keys (based on
functional dependencies), the Volcano optimizer rejects the simplified Sort
because the optimized collation doesn't strictly match the original prefix.
**Example:**
- Original collation: [0, 1](sort by field 0, then field 1)
- Optimized collation: [0](field 1 is functionally determined by field 0)
The optimizer requires exact prefix matching, even though the optimized
collation is semantically equivalent. This prevents
"SortRemoveDuplicateKeysRule" from working effectively in VolcanoPlanner.
**Solution:**
Modify trait satisfaction logic to recognize FD-optimized collations as valid
when they preserve semantic ordering.
> Enable Trait Satisfaction for FD-Optimized Collations
> -----------------------------------------------------
>
> Key: CALCITE-7234
> URL: https://issues.apache.org/jira/browse/CALCITE-7234
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.40.0
> Reporter: Zhen Chen
> Priority: Major
>
> *Problem:*
> When "SortRemoveDuplicateKeysRule" removes redundant sort keys (based on
> functional dependencies), the Volcano optimizer rejects the simplified Sort
> because the optimized collation doesn't strictly match the original prefix.
> *Example:*
> - Original collation: [0, 1](sort by field 0, then field 1)
> - Optimized collation: [0](field 1 is functionally determined by field 0)
> The optimizer requires exact prefix matching, even though the optimized
> collation is semantically equivalent. This prevents
> "SortRemoveDuplicateKeysRule" from working effectively in VolcanoPlanner.
> *Solution:*
> Modify trait satisfaction logic to recognize FD-optimized collations as valid
> when they preserve semantic ordering.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)