phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-3477) Support sequence arithmetic in Calcite-Phoenix
Date Tue, 06 Dec 2016 19:41:58 GMT

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

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

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

    https://github.com/apache/phoenix/pull/224#discussion_r91155610
  
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/calcite/rel/PhoenixClientProject.java
---
    @@ -73,13 +70,10 @@ public QueryPlan implement(PhoenixRelImplementor implementor) {
             QueryPlan plan = implementor.visitInput(0, (PhoenixQueryRel) getInput());
             implementor.popContext();
             
    -        
    -        PhoenixSequence sequence = CalciteUtils.findSequence(this);
    -        final SequenceManager seqManager = sequence == null ?
    -                null : new SequenceManager(new PhoenixStatement(sequence.pc));
    -        implementor.setSequenceManager(seqManager);
    -        TupleProjector tupleProjector = project(implementor);
    -        if (seqManager != null) {
    +
    --- End diff --
    
    This entire wrapping logic should live in PhoenixToEnumerableConverter instead. Wrapping
it with an iterator not a query plan would be better, something like:
    {code}
    
            return new DelegateQueryPlan((QueryPlan) plan) {
                @Override
                public ResultIterator iterator() throws SQLException {
                    ResultIterator iterator = iterator(DefaultParallelScanGrouper.getInstance());
                    if (phoenixImplementor.getSequenceManager().getSequenceCount() > 0)
{
                        iterator = new SequenceResultIterator(iterator, phoenixImplementor.getSequenceManager());
                    }
                    return iterator;
                }
                @Override
                public ExplainPlan getExplainPlan() throws SQLException {
    {code}


> Support sequence arithmetic in Calcite-Phoenix
> ----------------------------------------------
>
>                 Key: PHOENIX-3477
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3477
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Eric Lomore
>            Assignee: Eric Lomore
>
> When a sequence is wrapped inside an arithmetic operator it is routed through PhoenixServerProject
which does not currently have sequence support
> {{SELECT NEXT VALUE FOR foo.bar+1 FROM SYSTEM.SEQUENCE.}}



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

Mime
View raw message