[
https://issues.apache.org/jira/browse/PHOENIX-1854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15118684#comment-15118684
]
Hudson commented on PHOENIX-1854:
---------------------------------
FAILURE: Integrated in Phoenix-master #1109 (See
[https://builds.apache.org/job/Phoenix-master/1109/])
PHOENIX-1854 Investigate not setting ProjectedColumnExpression in (maryannxue:
rev de4f174272be4fddcc8bf6dada048b4e70394f52)
*
phoenix-core/src/main/java/org/apache/phoenix/compile/OrderPreservingTracker.java
> Investigate not setting ProjectedColumnExpression in TupleProjector
> expressions array
> -------------------------------------------------------------------------------------
>
> Key: PHOENIX-1854
> URL: https://issues.apache.org/jira/browse/PHOENIX-1854
> Project: Phoenix
> Issue Type: Improvement
> Reporter: James Taylor
> Assignee: Maryann Xue
> Priority: Minor
> Fix For: 4.8.0
>
>
> In implementing PHOENIX-1826, on the visit of a ProjectedColumnExpression, we
> dereference the TupleProjector expressions array and continue the visit on
> the expression. To prevent a stack overflow due to infinite recursion, we
> detect the case when the dereferenced ProjectedColumnExpression is the same
> as the expression being visited and do not continue the traversal. See FIXME
> in OrderPreservingTracker.TrackOrderPreservingExpressionVisitor:
> {code}
> @Override
> public Info visit(ProjectedColumnExpression node) {
> if (projector == null) {
> return super.visit(node);
> }
> Expression expression =
> projector.getExpressions()[node.getPosition()];
> // FIXME: prevents infinite recursion for union all in subquery,
> but
> // should a ProjectedColumnExpression be used in this case?
> Wouldn't
> // it make more sense to not create this wrapper in this case?
> if (expression == node) {
> return super.visit(node);
> }
> return expression.accept(this);
> }
> {code}
> It's possible that this wrapping is not necessary in the first place.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)