phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Soldatov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-3342) ORDER BY and LIMIT+OFFSET doesnt work on second column from compound key
Date Thu, 20 Oct 2016 08:01:13 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-3342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sergey Soldatov updated PHOENIX-3342:
-------------------------------------
    Attachment: PHOENIX-3342-wip.patch

The reason of this behavior is creating scan for TopN that doesn't know about offset. So,
the patch create scan for limit + offset number of rows instead of limit only. I'm curious
whether changes in ExplainTable.java are valid. Is it possible that we have pageFilter and
offset at the same time? 


> ORDER BY and LIMIT+OFFSET doesnt work on second column from compound key
> ------------------------------------------------------------------------
>
>                 Key: PHOENIX-3342
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3342
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.8.1
>            Reporter: Alex Batyrshin
>             Fix For: 4.9.0, 4.8.2
>
>         Attachments: PHOENIX-3342-wip.patch
>
>
> Here is simple test case
> {code}
> CREATE TABLE "test" (
>     col1 VARCHAR,
>     col2 VARCHAR,
>     "foo"."data" VARCHAR,
>     CONSTRAINT PK PRIMARY KEY (col1, col2)
> );
> 0: jdbc:phoenix:localhost> upsert into "test" (COL1, COL2, "data") values ('1', '1',
'd1');
> 1 row affected (0.044 seconds)
> 0: jdbc:phoenix:localhost> upsert into "test" (COL1, COL2, "data") values ('1', '2',
'd2');
> 1 row affected (0.008 seconds)
> 0: jdbc:phoenix:localhost> upsert into "test" (COL1, COL2, "data") values ('1', '3',
'd3');
> 1 row affected (0.007 seconds)
> 0: jdbc:phoenix:localhost> select * from "test" order by col2;
> +-------+-------+-------+
> | COL1  | COL2  | data  |
> +-------+-------+-------+
> | 1     | 1     | d1    |
> | 1     | 2     | d2    |
> | 1     | 3     | d3    |
> +-------+-------+-------+
> 3 rows selected (0.026 seconds)
> 0: jdbc:phoenix:localhost> select * from "test" order by col2 limit 1;
> +-------+-------+-------+
> | COL1  | COL2  | data  |
> +-------+-------+-------+
> | 1     | 1     | d1    |
> +-------+-------+-------+
> 1 row selected (0.026 seconds)
> 0: jdbc:phoenix:localhost> select * from "test" order by col2 offset 1;
> +-------+-------+-------+
> | COL1  | COL2  | data  |
> +-------+-------+-------+
> | 1     | 2     | d2    |
> | 1     | 3     | d3    |
> +-------+-------+-------+
> 2 rows selected (0.02 seconds)
> {code}
> And this query doesn't work as expected:
> {code}
> 0: jdbc:phoenix:localhost> select * from "test" order by col2 limit 1 offset 1;
> +-------+-------+-------+
> | COL1  | COL2  | data  |
> +-------+-------+-------+
> +-------+-------+-------+
> No rows selected (0.024 seconds)
> {code}



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

Mime
View raw message