[ https://issues.apache.org/jira/browse/CALCITE-3963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17155796#comment-17155796 ]
Xiening Dai commented on CALCITE-3963: -------------------------------------- There are already a number of bugs here and there with the current hack. It doesn't become a serious issue for now just because the cost calculation is only used in the last step to find best plan. At that point, since all the logical nodes are implanted, the stats estimates are tend to be accurate. But if any rule's relying on the stats for transformation (for example LoptOptimizeRule swaps join input based on the row count), we could run into serious issue and miss the best plan. Also with the new top-down rule apply and Cascade style pruning (CALCITE-3916), it become even more important to produce consistent and accurate stats from RelSet. > 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: 1h > 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)