You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2017/09/29 05:25:37 UTC

phoenix git commit: PHOENIX-4243 Using rowtimestamp column with RVC causes an exception sometimes

Repository: phoenix
Updated Branches:
  refs/heads/master d76a4f4e5 -> a4ce14bad


PHOENIX-4243 Using rowtimestamp column with RVC causes an exception sometimes


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

Branch: refs/heads/master
Commit: a4ce14badb00eb51c34059c602e33e1a889877e5
Parents: d76a4f4
Author: Samarth Jain <sa...@apache.org>
Authored: Thu Sep 28 22:25:32 2017 -0700
Committer: Samarth Jain <sa...@apache.org>
Committed: Thu Sep 28 22:25:32 2017 -0700

----------------------------------------------------------------------
 .../apache/phoenix/end2end/UpsertSelectIT.java  | 56 +++++++++-----------
 .../org/apache/phoenix/compile/ScanRanges.java  |  4 +-
 2 files changed, 28 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a4ce14ba/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java
index 2dbb00b..fef5a25 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java
@@ -1127,7 +1127,6 @@ public class UpsertSelectIT extends ParallelStatsDisabledIT {
             assertEquals("KV2", rs.getString("KV2"));
             assertEquals("KV3", rs.getString("KV3"));
             assertFalse(rs.next());
-
             // Query using the index on base table
             stmt = conn.prepareStatement("SELECT KV1 FROM  " + baseTable + " WHERE PK2 >= ? AND PK2 <= ? AND KV3 = ?");
             stmt.setDate(1, new Date(startTime));
@@ -1220,39 +1219,36 @@ public class UpsertSelectIT extends ParallelStatsDisabledIT {
             assertEquals("KV24", rs.getString("KV2"));
             assertEquals("KV34", rs.getString("KV3"));
             assertFalse(rs.next());
-
-            // TODO: enable after PHOENIX-4243 is fixed
-//            // Query using the index on base table
-//            stmt = conn.prepareStatement("SELECT KV1 FROM  " + baseTable + " WHERE (PK2, KV3) IN ((?, ?), (?, ?)) ORDER BY KV1");
-//            stmt.setDate(1, upsertedDate);
-//            stmt.setString(2, "KV33");
-//            stmt.setDate(3, new Date(upsertedTs));
-//            stmt.setString(4, "KV34");
-//            rs = stmt.executeQuery();
-//            QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
-//            assertTrue(plan.getTableRef().getTable().getName().getString().equals(baseTableIdx));
-//            assertTrue(rs.next());
-//            assertEquals("KV13", rs.getString("KV1"));
-//            assertTrue(rs.next());
-//            assertEquals("KV14", rs.getString("KV1"));
-//            assertFalse(rs.next());
+            // Query using the index on base table
+            stmt = conn.prepareStatement("SELECT KV1 FROM  " + baseTable + " WHERE (PK2, KV3) IN ((?, ?), (?, ?)) ORDER BY KV1");
+            stmt.setDate(1, upsertedDate);
+            stmt.setString(2, "KV33");
+            stmt.setDate(3, new Date(upsertedTs));
+            stmt.setString(4, "KV34");
+            rs = stmt.executeQuery();
+            QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+            assertTrue(plan.getTableRef().getTable().getName().getString().equals(baseTableIdx));
+            assertTrue(rs.next());
+            assertEquals("KV13", rs.getString("KV1"));
+            assertTrue(rs.next());
+            assertEquals("KV14", rs.getString("KV1"));
+            assertFalse(rs.next());
         }
         
         // Verify that the data upserted using the tenant view can now be queried using tenant view
         try (Connection tenantConn = getTenantConnection(tenantId)) {
-            //TODO: enable after PHOENIX-4243 is fixed    
-//            // Query the base table
-//            PreparedStatement stmt = tenantConn.prepareStatement("SELECT * FROM  " + tenantView + " WHERE (PK2, PK3) IN ((?, ?), (?, ?)) ORDER BY KV1");
-//            stmt.setDate(1, upsertedDate);
-//            stmt.setInt(2, 33);
-//            stmt.setDate(3, new Date(upsertedTs));
-//            stmt.setInt(4, 44);
-//            ResultSet rs = stmt.executeQuery();
-//            assertTrue(rs.next());
-//            assertEquals("KV13", rs.getString("KV1"));
-//            assertTrue(rs.next());
-//            assertEquals("KV14", rs.getString("KV1"));
-//            assertFalse(rs.next());
+            // Query the base table
+            PreparedStatement stmt = tenantConn.prepareStatement("SELECT * FROM  " + tenantView + " WHERE (PK2, PK3) IN ((?, ?), (?, ?)) ORDER BY KV1");
+            stmt.setDate(1, upsertedDate);
+            stmt.setInt(2, 33);
+            stmt.setDate(3, new Date(upsertedTs));
+            stmt.setInt(4, 44);
+            ResultSet rs = stmt.executeQuery();
+            assertTrue(rs.next());
+            assertEquals("KV13", rs.getString("KV1"));
+            assertTrue(rs.next());
+            assertEquals("KV14", rs.getString("KV1"));
+            assertFalse(rs.next());
             
             //TODO: uncomment the code after PHOENIX-2277 is fixed
 //            // Query using the index on the tenantView

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a4ce14ba/phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java
index 5a1fcb7..a7909fb 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/ScanRanges.java
@@ -650,8 +650,8 @@ public class ScanRanges {
                     //ranges.set(rowTimestampColPos, sortedRange); //TODO: do I really need to do this?
                     Field f = schema.getField(rowTimestampColPos);
                     SortOrder order = f.getSortOrder();
-                    KeyRange lowestRange = rowTimestampColRange.get(0);
-                    KeyRange highestRange = rowTimestampColRange.get(rowTimestampColRange.size() - 1);
+                    KeyRange lowestRange = sortedRange.get(0);
+                    KeyRange highestRange = sortedRange.get(rowTimestampColRange.size() - 1);
                     if (order == SortOrder.DESC) {
                         return getDescTimeRange(lowestRange, highestRange, f);
                     }