[
https://issues.apache.org/jira/browse/CALCITE-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14641378#comment-14641378
]
Maryann Xue commented on CALCITE-783:
-------------------------------------
Hi [~julianhyde] and [~milinda], I need to understand the change to
LogicalAggregate. So why does it return the collation of its child. Suppose we
have a table t(pk, c1, c2) ordered on pk, and we group by c1, and most likely
we'd use hash group-by or sort group-by, but neither will preserve the original
pk order. And specifying a certain collation trait in the Logical rels would
actually mean enforcing corresponding user rels to have the same collation and
enforcing their implementations. With the existing collation traits of any
other Logical rel, they are either required by spec (like LogicalSort) or
logically derivable (like LogicalProject), but this one is neither.
> Infer collation of Project using monotonicity
> ---------------------------------------------
>
> Key: CALCITE-783
> URL: https://issues.apache.org/jira/browse/CALCITE-783
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Milinda Lakmal Pathirage
> Assignee: Julian Hyde
> Fix For: 1.4.0-incubating
>
> Attachments: CALCITE-783-0.patch, CALCITE-783-1.patch
>
>
> Current implementation of RelMdCollation#project doesn't handle function
> expressions and because of that we loose any collation metadata related to
> monotonic expressions which can be useful for generating streaming query
> execution plans involving tumbling windows.
> Following is how current code looks like (RelMdCollation):
> 185: for (Ord<RexNode> project : Ord.zip(projects)) {
> 186: if (project.e instanceof RexInputRef) {
> 187: targets.put(((RexInputRef) project.e).getIndex(), project.i);
> 188: }
> 189: }
> We only handle projects of type RexInputRef. But to support monotonic
> expressions we should laso handle projects of type RexCall.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)