[ 
https://issues.apache.org/jira/browse/PHOENIX-136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13976869#comment-13976869
 ] 

ASF GitHub Bot commented on PHOENIX-136:
----------------------------------------

Github user maryannxue commented on a diff in the pull request:

    https://github.com/apache/incubator-phoenix/pull/31#discussion_r11857047
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/compile/QueryCompiler.java ---
    @@ -290,6 +292,9 @@ protected BasicQueryPlan 
compileSingleQuery(StatementContext context, SelectStat
             ColumnResolver resolver = context.getResolver();
             TableRef tableRef = context.getCurrentTable();
             PTable table = tableRef.getTable();
    +        if (table.getType() == PTableType.SUBQUERY)
    +            throw new SQLFeatureNotSupportedException("Complex nested 
queries not supported.");
    --- End diff --
    
    No, this is just subqueries (derived tables) in the from clause that 
SubselectRewriter is unable to flatten. We don't have parser support for 
correlated subqueries so far.


> Support derived tables
> ----------------------
>
>                 Key: PHOENIX-136
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-136
>             Project: Phoenix
>          Issue Type: Task
>            Reporter: James Taylor
>            Assignee: James Taylor
>              Labels: enhancement
>
> Add support for derived queries of the form:
> SELECT * FROM ( SELECT company, revenue FROM Company ORDER BY revenue) LIMIT 
> 10
> Adding support for this requires a compile time change as well as a runtime 
> execution change. The first version of the compile-time change could limit 
> aggregation to only be allowed in the inner or the outer query, but not both. 
> In this case, the inner and outer queries can be combined into a single query 
> with the outer select becoming just a remapping of a subset of the projection 
> from the inner select. The second version of the compile-time change could 
> handle aggregation in the inner and outer select by performing client side 
> (this is likely a less common scenario).
> For the runtime execution, change the UngroupedAggregateRegionObserver would 
> be modified to look for a new "TopNLimit" attribute with an int value in the 
> Scan. This would control the maximum number of values for the coprocessor to 
> hold on to as the scan is performed. Then the 
> GroupedAggregatingResultIterator would be modified to handle keeping the topN 
> values received back from all the child iterators.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to