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

James Taylor commented on PHOENIX-2942:
---------------------------------------

By putting parenthesis around the ORDER BY expressions, it becomes a row value 
constructor expression. Without the parenthesis, the sort order is correct 
(there's also a bug in your test - the sort order will be ascending by default).
{code}
    @Test
    public void testOrderByDecimalColumns() throws Exception {
        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
        Connection conn = DriverManager.getConnection(getUrl(), props);
        String ddl = "create table test1 (testpk varchar not null primary key, 
l_quantity decimal(15,2), l_discount decimal(15,2))";
        conn.createStatement().execute(ddl);

        PreparedStatement stmt = conn.prepareStatement("upsert into test1 
values ('a',0.1,0.9)");
        stmt.execute();
        stmt = conn.prepareStatement(" upsert into test1 values ('b',0.5,0.5)");
        stmt.execute();
        stmt = conn.prepareStatement(" upsert into test1 values ('c',0.9,0.1)");
        stmt.execute();
        conn.commit();

        ResultSet rs;
        stmt = conn.prepareStatement("select l_discount from test1 order by 
l_discount,l_quantity");
        rs = stmt.executeQuery();
        assertTrue(rs.next());
        assertEquals(0.1, rs.getDouble(1), 0.01);
        assertTrue(rs.next());
        assertEquals(0.5, rs.getDouble(1), 0.01);
        assertTrue(rs.next());
        assertEquals(0.9, rs.getDouble(1), 0.01);
    }
{code}
It's still a bug, but not as severe as first expected.

> Order by incorrect for RVC
> --------------------------
>
>                 Key: PHOENIX-2942
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2942
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Mujtaba Chohan
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-2942-utest.patch
>
>
> {code}
> Incorrect
> select L_DISCOUNT, L_QUANTITY from lineitem_encoded order by 
> (l_discount,L_QUANTITY) limit 10;
> +-------------+-------------+
> | L_DISCOUNT  | L_QUANTITY  |
> +-------------+-------------+
> | 0.04        | 17          |
> | 0.01        | 4           |
> | 0.09        | 28          |
> | 0.1         | 46          |
> | 0.06        | 27          |
> | 0.04        | 36          |
> | 0.1         | 49          |
> | 0.01        | 15          |
> | 0.1         | 34          |
> | 0.01        | 28          |
> +-------------+-------------+
> {code}
> {code}
> Correct
> select  L_DISCOUNT, L_QUANTITY from lineitem_encoded order by (l_discount) 
> limit 10;
> +-------------+-------------+
> | L_DISCOUNT  | L_QUANTITY  |
> +-------------+-------------+
> | 0           | 38          |
> | 0           | 24          |
> | 0           | 31          |
> | 0           | 41          |
> | 0           | 22          |
> | 0           | 5E+1        |
> | 0           | 1           |
> | 0           | 49          |
> | 0           | 28          |
> | 0           | 15          |
> +-------------+-------------+
> {code}
> {code}
> CREATE TABLE LINEITEM_ENCODED(L_ORDERKEY INTEGER not null, L_PARTKEY  
> INTEGER, L_SUPPKEY  INTEGER , L_LINENUMBER  INTEGER not null, L_QUANTITY 
> DECIMAL(15,2), L_EXTENDEDPRICE DECIMAL(15,2), L_DISCOUNT DECIMAL(15,2), L_TAX 
> DECIMAL(15,2), L_RETURNFLAG  CHAR(1), L_LINESTATUS  CHAR(1), L_SHIPDATE DATE, 
> L_COMMITDATE DATE, L_RECEIPTDATE DATE, L_SHIPINSTRUCT CHAR(25), L_SHIPMODE 
> CHAR(10), L_COMMENT VARCHAR(44) constraint pk primary key(l_orderkey, 
> l_linenumber));
> {code}
> I'll get a utest for it soon.



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

Reply via email to