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

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

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

    https://github.com/apache/phoenix/pull/229#discussion_r100738646
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/execute/CursorFetchPlan.java ---
    @@ -0,0 +1,87 @@
    +package org.apache.phoenix.execute;
    +
    +import java.sql.ParameterMetaData;
    +import java.sql.SQLException;
    +import java.util.List;
    +import java.util.Set;
    +
    +import org.apache.hadoop.hbase.client.Scan;
    +import org.apache.phoenix.compile.ExplainPlan;
    +import org.apache.phoenix.compile.GroupByCompiler.GroupBy;
    +import org.apache.phoenix.compile.OrderByCompiler.OrderBy;
    +import org.apache.phoenix.compile.QueryPlan;
    +import org.apache.phoenix.compile.RowProjector;
    +import org.apache.phoenix.compile.StatementContext;
    +import org.apache.phoenix.iterate.CursorResultIterator;
    +import org.apache.phoenix.iterate.ParallelScanGrouper;
    +import org.apache.phoenix.iterate.ResultIterator;
    +import org.apache.phoenix.jdbc.PhoenixStatement.Operation;
    +import org.apache.phoenix.parse.FilterableStatement;
    +import org.apache.phoenix.query.KeyRange;
    +import org.apache.phoenix.schema.TableRef;
    +
    +public class CursorFetchPlan extends DelegateQueryPlan {
    +
    +   //QueryPlan cursorQueryPlan;
    +   private CursorResultIterator resultIterator;
    +   private int fetchSize;
    +
    +   public CursorFetchPlan(QueryPlan cursorQueryPlan) {
    +           super(cursorQueryPlan);
    +   }
    +
    +
    +   @Override
    +   public ResultIterator iterator() throws SQLException {
    +           // TODO Auto-generated method stub
    +           StatementContext context = delegate.getContext();
    +           if (resultIterator != null) {
    +                   return resultIterator;
    +           } else {
    +                   context.getOverallQueryMetrics().startQuery();
    +                   resultIterator = (CursorResultIterator) 
delegate.iterator();
    +                   return resultIterator;
    +           }
    +   }
    +
    +   @Override
    +   public ResultIterator iterator(ParallelScanGrouper scanGrouper) throws 
SQLException {
    +           // TODO Auto-generated method stub
    +           StatementContext context = delegate.getContext();
    +           if (resultIterator != null) {
    +                   return resultIterator;
    +           } else {
    +                   context.getOverallQueryMetrics().startQuery();
    +                   resultIterator = (CursorResultIterator) 
delegate.iterator(scanGrouper);
    +                   return resultIterator;
    +           }
    +   }
    +
    +   @Override
    +   public ResultIterator iterator(ParallelScanGrouper scanGrouper, Scan 
scan) throws SQLException {
    +           // TODO Auto-generated method stub
    --- End diff --
    
    can you merge these iterators as all are doing the same and base class will 
be calling iterator(ParallelScanGrouper scanGrouper, Scan scan) internally from 
other overloaded methods with special parameter value.


> Support FETCH NEXT| n ROWS from Cursor
> --------------------------------------
>
>                 Key: PHOENIX-3572
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3572
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Biju Nair
>            Assignee: Biju Nair
>
> Implement required changes to support 
> - {{DECLARE}} and {{OPEN}} a cursor
> - query {{FETCH NEXT | n ROWS}} from the cursor
> - {{CLOSE}} the cursor
> Based on the feedback in [PR 
> #192|https://github.com/apache/phoenix/pull/192], implement the changes using 
> {{ResultSet}}.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to