You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "LakeShen (Jira)" <ji...@apache.org> on 2023/08/09 04:48:00 UTC

[jira] [Commented] (CALCITE-5913) Support to get functional dependency metadata in RelMetadataQuery

    [ https://issues.apache.org/jira/browse/CALCITE-5913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17752261#comment-17752261 ] 

LakeShen commented on CALCITE-5913:
-----------------------------------

Maybe Functional dependencies is challenging to implement,I think we could create a umbrella jira to track FunctionalDependency feature,at the same time, under this umbrella jira, create multiple small task jiras,step by step into calcite.It also makes it easier to review.

WDYT?

> Support to get functional dependency metadata in RelMetadataQuery
> -----------------------------------------------------------------
>
>                 Key: CALCITE-5913
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5913
>             Project: Calcite
>          Issue Type: New Feature
>            Reporter: JingDas
>            Assignee: JingDas
>            Priority: Major
>
> Functional dependency analysis can be applied to various problems in query optimization:
> selectivity estimation, estimation of (intermediate) result sizes, *order optimization*
> *(in particular sort avoidance),* cost estimation, and various problems in the area of semantic query optimization, as said in the book《[Exploiting Functional Dependence in Query Optimization》|https://cs.uwaterloo.ca/research/tr/2000/11/CS-2000-11.thesis.pdf]
>  
> In calcite, it may be metadata that something like 'FunctionalDependency' BuiltInMetadata as following:
> {code:java}
> public abstract class BuiltInMetadata {
>    // ...
>    public interface FunctionalDependency extends Metadata {
>        /** Returns whether column is functionally dependent on columns. */
>        Boolean functionallyDetermine(ImmutableBitSet columns, int column);
>    }
> } {code}
>  
> As the above book said, functional dependency analysis is a valuable and challenging work. I think support order optimization
> (in particular sort avoidance) by the relevant functional dependency metadata firstly, and then get complete functional dependency function step by step.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)