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

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

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

    https://github.com/apache/phoenix/pull/154#discussion_r57551094
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/compile/SubselectRewriter.java ---
    @@ -202,14 +204,30 @@ private SelectStatement flatten(SelectStatement 
select, SelectStatement subselec
                     }
                 }
             }
    -        
    +        OffsetNode offset = select.getOffset();
    +        if (offset != null) {
    +            if (offsetRewrite == null) {
    +                offsetRewrite = offset;
    +            } else {
    +                Integer offsetValue = OffsetCompiler.compile(null, select);
    +                Integer offsetValueSubselect = 
OffsetCompiler.compile(null, subselect);
    +                if (offsetValue != null && offsetValueSubselect != null) {
    +                    offsetRewrite = offsetValue < offsetValueSubselect ? 
offset : offsetRewrite;
    +                } else {
    +                    return select;
    +                }
    +            }
    +        }
    +
    --- End diff --
    
    Thanks for pointing out. I thought a little and have updated the logic to 
     if (offsetRewrite != null || (limitRewrite != null & offset != null)) {
                return select;
            } else {
                offsetRewrite = offset;
            }
    Let me know if any optimization is possible.


> support mysql "limit,offset" clauses 
> -------------------------------------
>
>                 Key: PHOENIX-2722
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2722
>             Project: Phoenix
>          Issue Type: New Feature
>            Reporter: Ankit Singhal
>            Assignee: Ankit Singhal
>            Priority: Minor
>         Attachments: PHOENIX-2722.patch, PHOENIX-2722_formatted.patch
>
>
> For serial query(query with “serial" hint or  “limit" without "order by”), we 
> can limit each scan(using page filter) to “limit+offset” instead of limit 
> earlier.
> And then, for all queries, we can forward the relevant client iterators to 
> the offset provided and then return the result.
> syntax
> {code}
> [ LIMIT { count } ]
>     [ OFFSET start [ ROW | ROWS ] ]
>     [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
> {code}
> Some new keywords(OFFSET,FETCH,ROW, ROWS,ONLY) are getting introduced so 
> users might need to see that they are not using them as column name or 
> something.
> WDYT, [~jamestaylor]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to