[
https://issues.apache.org/jira/browse/CALCITE-3963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17137899#comment-17137899
]
Julian Hyde commented on CALCITE-3963:
--------------------------------------
bq. My question is what would be the binary operation if we model other RelSet
statistics as semigroup.
It depends on the statistic. For sets of predicates and unique keys, the
operation is union. For minRowCount, the operation is max.
As I said earlier, some statistics (e.g. estimated row count) do not have such
an operation, and thus are not semigroups. But that should not stop us from
treating those that are semigroups as semigroups. The statistics that are not
semigroups are often computed from other statistics, so making the semigroup
statistics more robust will make all statistics more robust.
> Maintain logical properties at RelSet (equivalent group) instead of RelNode
> ---------------------------------------------------------------------------
>
> Key: CALCITE-3963
> URL: https://issues.apache.org/jira/browse/CALCITE-3963
> Project: Calcite
> Issue Type: Bug
> Reporter: Xiening Dai
> Assignee: Xiening Dai
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> Currently the logical properties (such as row count, distinct row count, etc)
> are maintained at RelNode level. This creates a number of meta data
> consistency problems, e.g. CALCITE-1048, CALCITE-2166.
> In theory, all RelNodes in a RelSet should share the same logical properties
> per definition of relational equivalence. So it makes more sense to keep
> logical properties at RelSet level, rather than the RelNode. And such
> properties shouldn't change when new sub set is created or subset's best is
> changed.
> Specifically I think below build in metadata should fall into the logical
> properties category -
> Selectivity
> UniqueKeys
> ColumnUniqueness
> RowCount
> MaxRowCount
> MinRowCount
> DistinctRowCount
> Size (averageRowSize, averageColumnSize)
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)