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