[ 
https://issues.apache.org/jira/browse/CALCITE-5913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

JingDas updated CALCITE-5913:
-----------------------------
    Description: 
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 paper《[Exploiting 
Functional Dependence in Query 
Optimization》|https://cs.uwaterloo.ca/research/tr/2000/11/CS-2000-11.thesis.pdf]

 

In calcite, it may be meta 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 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 complete to get functional dependency function step by step.

  was:
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 paper《Exploiting Functional 
Dependence in Query Optimization》

 

In calcite, it may be meta 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 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 complete to get functional dependency function step by step.


> 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 paper《[Exploiting 
> Functional Dependence in Query 
> Optimization》|https://cs.uwaterloo.ca/research/tr/2000/11/CS-2000-11.thesis.pdf]
>  
> In calcite, it may be meta 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 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 complete to get functional dependency function step by step.



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

Reply via email to