[
https://issues.apache.org/jira/browse/PHOENIX-2876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15274653#comment-15274653
]
James Taylor commented on PHOENIX-2876:
---------------------------------------
I see. I think the best fix would be to take the {{selectVisitor.compile()}}
call out of ProjectionCompiler and call it after the OrderBy.compile() call in
QueryCompiler.compileSingleFlatQuery(). I don't think the selectVisitor depends
on any state in the visitor, so trying moving the code to a new
AggregationManager.compile method instead. Make sure that the OrderBy.compile()
is adding aggregate expressions to the context (like the ProjectCompiler does).
> Using aggregation function in ORDER BY
> --------------------------------------
>
> Key: PHOENIX-2876
> URL: https://issues.apache.org/jira/browse/PHOENIX-2876
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.7.0
> Reporter: Sergey Soldatov
> Assignee: Sergey Soldatov
> Fix For: 4.8.0
>
> Attachments: PHOENIX-2876-1.patch
>
>
> {noformat}
> create table x (id integer primary key, i1 integer, i2 integer);
> upsert into x values (1, 1, 1);
> upsert into x values (2, 2, 2);
> upsert into x values (3, 2, 3);
> upsert into x values (4, 3, 3);
> upsert into x values (5, 3, 2);
> upsert into x values (6, 3, 1);
> {noformat}
> Test query:
> {noformat}
> select i1 from X group by i1 order by avg(i2) desc;
> {noformat}
> Expected result: 2, 3, 1
> Real result : 1, 3, 2
> In other hands
> {noformat}
> select i1, avg(i2) from X group by i1 order by avg(i2) desc;
> {noformat}
> works correctly.
> That happens because in ORDER BY we add nothing to RowProjector if we deal
> with aggregate functions. So, there is a question. Do we have any
> restrictions why we can't add the expression from ORDER BY to RowProjector ?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)