Gary Horen created PHOENIX-2194:
-----------------------------------

             Summary: order by should not require all PK fields with = 
constraint
                 Key: PHOENIX-2194
                 URL: https://issues.apache.org/jira/browse/PHOENIX-2194
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.5.0
         Environment: linux
            Reporter: Gary Horen


Here is a table:
CREATE TABLE IF NOT EXISTS FEEDS.STUFF
(
    STUFF CHAR(15) NOT NULL,
    NONSENSE CHAR(15) NOT NULL
    CONSTRAINT PK PRIMARY KEY
    (
        STUFF,
        NONSENSE
    
    )
) VERSIONS=1,MULTI_TENANT=TRUE,REPLICATION_SCOPE=1

Here is a query:
explain SELECT * FROM feeds.stuff
where stuff = ' '
and nonsense > ' '
order by nonsense

Here is the plan:
CLIENT 1-CHUNK PARALLEL 1-WAY RANGE SCAN  
    SERVER FILTER BY FIRST KEY ONLY       
    SERVER TOP 100 ROWS SORTED BY [NONSE  
CLIENT MERGE SORT   

If I change to ORDER BY STUFF, NONSENSE I get:
CLIENT 1-CHUNK SERIAL 1-WAY RANGE SCAN O  
    SERVER FILTER BY FIRST KEY ONLY AND   
    SERVER 100 ROW LIMIT                  
CLIENT 100 ROW LIMIT                      

Since the leading constraint is =,  ORDER BY will be unaffected by it, so ORDER 
BY should not need the leading constraint; it should only require the columns 
whose values would vary (which, since they are ordered by the key, should (and 
do) result in the client side sort being optimized out.) Having to include the 
leading = constraints in the ORDER BY clause is very counter-intuitive.



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

Reply via email to