> We do not normalize RexNodes, thus it results in excessive planning time, > especially when the planner is trying to reorder joins. > For instance, it thinks Join(A, B, $0=$1) and Join(A, B, $1=$0) are > different joins, however, they are equivalent.
How much cases are there in production ? This example itself seems very marginalized. I’m not against with it, I’m suspicious about the value of the feature. > It turned out "b" (sort operands in computeDigest) is easier to implement. > I've filed a PR: https://github.com/apache/calcite/pull/1703 I’m strongly -1 for this way, because it beaks the plan test where almost all of the change are meaningless. Best, Danny Chan 在 2019年12月30日 +0800 AM3:09,[email protected],写道: > > We do not normalize RexNodes, thus it results in excessive planning time, > especially when the planner is trying to reorder joins. > For instance, it thinks Join(A, B, $0=$1) and Join(A, B, $1=$0) are > different joins, however, they are equivalent.
