You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2015/03/28 00:31:15 UTC

phoenix git commit: Revert "PHOENIX-1749 ORDER BY should support column position as well as column alias (Alicia Ying Shu)"

Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 f1d10c7b2 -> 3bca61df5


Revert "PHOENIX-1749 ORDER BY should support column position as well as column alias (Alicia Ying Shu)"

This reverts commit f1d10c7b256d44bdd3dd2f9119d0b8caa5e16b1b.


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/3bca61df
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/3bca61df
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/3bca61df

Branch: refs/heads/4.x-HBase-0.98
Commit: 3bca61df58f93b6a29b1fbb545677580498d2612
Parents: f1d10c7
Author: James Taylor <ja...@apache.org>
Authored: Fri Mar 27 16:30:07 2015 -0700
Committer: James Taylor <ja...@apache.org>
Committed: Fri Mar 27 16:30:07 2015 -0700

----------------------------------------------------------------------
 .../org/apache/phoenix/end2end/OrderByIT.java   | 55 +-------------------
 .../apache/phoenix/compile/OrderByCompiler.java | 22 ++------
 2 files changed, 4 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/3bca61df/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
index 0e961c1..a8beb1e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
@@ -80,7 +80,7 @@ public class OrderByIT extends BaseClientManagedTimeIT {
             conn.close();
         }
     }
-
+    
 
     @Test
     public void testDescMultiOrderByExpr() throws Exception {
@@ -118,57 +118,4 @@ public class OrderByIT extends BaseClientManagedTimeIT {
             conn.close();
         }
     }
-
-    @Test
-    public void testOrderByWithPosition() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        conn.setAutoCommit(false);
-
-        try {
-            String ddl = "CREATE TABLE t_table " +
-                    "  (a_string varchar not null, col1 integer" +
-                    "  CONSTRAINT pk PRIMARY KEY (a_string))\n";
-            createTestTable(getUrl(), ddl);
-
-            String dml = "UPSERT INTO t_table VALUES(?, ?)";
-            PreparedStatement stmt = conn.prepareStatement(dml);
-            stmt.setString(1, "a");
-            stmt.setInt(2, 40);
-            stmt.execute();
-            stmt.setString(1, "b");
-            stmt.setInt(2, 20);
-            stmt.execute();
-            stmt.setString(1, "c");
-            stmt.setInt(2, 30);
-            stmt.execute();
-            conn.commit();
-
-            String aggregate = "select count(*), col1 from t_table group by col1 order by 2";
-            ResultSet rs = conn.createStatement().executeQuery(aggregate);
-            assertTrue(rs.next());
-            assertEquals(1,rs.getInt(1));
-            assertTrue(rs.next());
-            assertEquals(1,rs.getInt(1));
-            assertTrue(rs.next());
-            assertEquals(1,rs.getInt(1));  
-            assertFalse(rs.next());  
-
-            aggregate = "select a_string x, col1 y from t_table order by x";
-            rs = conn.createStatement().executeQuery(aggregate);
-            assertTrue(rs.next());
-            assertEquals("a",rs.getString(1));
-            assertEquals(40,rs.getInt(2));
-            assertTrue(rs.next());
-            assertEquals("b",rs.getString(1));
-            assertEquals(20,rs.getInt(2));
-            assertTrue(rs.next());
-            assertEquals("c",rs.getString(1));  
-            assertEquals(30,rs.getInt(2));
-            assertFalse(rs.next());  
-        } finally {
-            conn.close();
-        }
-    }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3bca61df/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
index f138ce0..215f59e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
@@ -29,15 +29,12 @@ import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.exception.SQLExceptionInfo;
 import org.apache.phoenix.expression.Expression;
 import org.apache.phoenix.expression.OrderByExpression;
-import org.apache.phoenix.parse.LiteralParseNode;
+import org.apache.phoenix.parse.FilterableStatement;
 import org.apache.phoenix.parse.OrderByNode;
-import org.apache.phoenix.parse.ParseNode;
-import org.apache.phoenix.parse.SelectStatement;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.schema.SortOrder;
-import org.apache.phoenix.schema.types.PInteger;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
@@ -80,7 +77,7 @@ public class OrderByCompiler {
      * @throws SQLException
      */
     public static OrderBy compile(StatementContext context,
-                                  SelectStatement statement,
+                                  FilterableStatement statement,
                                   GroupBy groupBy, Integer limit, 
                                   boolean isInRowKeyOrder) throws SQLException {
         List<OrderByNode> orderByNodes = statement.getOrderBy();
@@ -94,20 +91,7 @@ public class OrderByCompiler {
         LinkedHashSet<OrderByExpression> orderByExpressions = Sets.newLinkedHashSetWithExpectedSize(orderByNodes.size());
         for (OrderByNode node : orderByNodes) {
             boolean isAscending = node.isAscending();
-            ParseNode parseNode = node.getNode();
-            Expression expression = null;
-            if (parseNode instanceof LiteralParseNode && ((LiteralParseNode)parseNode).getType() == PInteger.INSTANCE){
-                Integer index = (Integer)((LiteralParseNode)parseNode).getValue();
-                int size = statement.getSelect().size();
-                if (index > size || index <= 0 ) {
-                    throw new SQLExceptionInfo.Builder(SQLExceptionCode.PARAM_INDEX_OUT_OF_BOUND)
-                    .setMessage("Order by by positions ").build().buildException();
-                }
-                ParseNode orderNode = statement.getSelect().get(index-1).getNode();
-                expression = orderNode.accept(visitor);
-            } else {
-                expression = node.getNode().accept(visitor);
-            }
+            Expression expression = node.getNode().accept(visitor);
             if (!expression.isStateless() && visitor.addEntry(expression, isAscending ? SortOrder.ASC : SortOrder.DESC)) {
                 // Detect mix of aggregate and non aggregates (i.e. ORDER BY txns, SUM(txns)
                 if (!visitor.isAggregate()) {