[ https://issues.apache.org/jira/browse/PHOENIX-2844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15249162#comment-15249162 ]
James Taylor commented on PHOENIX-2844: --------------------------------------- Yes, +1. You're right, [~samarthjain]. It should be like this: {code} @Test public void testDescOnSecondRowKeyColumnWithWhereExpressionUsingFirstRowKeyColumn() throws SQLException { Connection conn = DriverManager.getConnection(getUrl()); conn.createStatement().execute("CREATE TABLE t (k1 VARCHAR NOT NULL, k2 DATE NOT NULL, k3 VARCHAR NOT NULL, V1 VARCHAR CONSTRAINT pk PRIMARY KEY (k1, k2, k3))"); PhoenixStatement stmt = conn.createStatement().unwrap(PhoenixStatement.class); String query = "select * from t where k1 < 'X' order by k2 desc"; QueryPlan plan = stmt.optimizeQuery(query); assertFalse(plan.getOrderBy().getOrderByExpressions().isEmpty()); query = "select * from t where k1 > 'X' order by k2 desc"; plan = stmt.optimizeQuery(query); assertFalse(plan.getOrderBy().getOrderByExpressions().isEmpty()); query = "select * from t where k1 = 'X' order by k2 desc"; plan = stmt.optimizeQuery(query); assertTrue(plan.getOrderBy().getOrderByExpressions().isEmpty()); assertTrue(plan.getContext().getScan().isReversed()); } {code} > ORDER BY doesn't seem consistent > -------------------------------- > > Key: PHOENIX-2844 > URL: https://issues.apache.org/jira/browse/PHOENIX-2844 > Project: Phoenix > Issue Type: Bug > Reporter: Samarth Jain > > {code} > @Test > public void > testDescOnSecondRowKeyColumnWithWhereExpressionUsingFirstRowKeyColumn() > throws SQLException { > Connection conn = DriverManager.getConnection(getUrl()); > conn.createStatement().execute("CREATE TABLE t (k1 VARCHAR NOT NULL, k2 > DATE NOT NULL, k3 VARCHAR NOT NULL, V1 VARCHAR CONSTRAINT pk PRIMARY KEY (k1, > k2, k3))"); > PhoenixStatement stmt = > conn.createStatement().unwrap(PhoenixStatement.class); > > String query = "select * from t where k1 < 'X' order by k2 desc"; > QueryPlan plan = stmt.optimizeQuery(query); > assertFalse(plan.getOrderBy().getOrderByExpressions().isEmpty()); > > > query = "select * from t where k1 > 'X' order by k2 desc"; > plan = stmt.optimizeQuery(query); > assertFalse(plan.getOrderBy().getOrderByExpressions().isEmpty()); > > query = "select * from t where k1 = 'X' order by k2 desc"; > plan = stmt.optimizeQuery(query); > assertFalse(plan.getOrderBy().getOrderByExpressions().isEmpty()); > assertTrue(plan.getContext().getScan().isReversed()); > > } > {code} > Because the rows we are looking at are already limited by the filter on the > first row key column, I would expect that the order by desc on second row key > column would result in plan.getOrderBy().getOrderByExpressions().isEmpty() to > be empty always. > [~jamestaylor] - WDYT? > This behavior is apparently causing a test failure in > ProductMetricsIT#testSaltedOrderBy for my patch in PHOENIX-2724. I think that > patch is surfacing this bug. -- This message was sent by Atlassian JIRA (v6.3.4#6332)