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