You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ma...@apache.org on 2014/11/26 00:12:13 UTC
phoenix git commit: PHOENIX-1474 NPE when RVC between combined with
key part comparison
Repository: phoenix
Updated Branches:
refs/heads/4.0 850272502 -> ed4ad1355
PHOENIX-1474 NPE when RVC between combined with key part comparison
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/ed4ad135
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/ed4ad135
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/ed4ad135
Branch: refs/heads/4.0
Commit: ed4ad1355213418e4c83d6a4fdfb3eadaf31b44b
Parents: 8502725
Author: maryannxue <ma...@apache.org>
Authored: Tue Nov 25 18:11:54 2014 -0500
Committer: maryannxue <ma...@apache.org>
Committed: Tue Nov 25 18:11:54 2014 -0500
----------------------------------------------------------------------
.../phoenix/end2end/RowValueConstructorIT.java | 15 +++++++++++++++
.../org/apache/phoenix/compile/WhereOptimizer.java | 4 +++-
2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ed4ad135/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
index be91eab..8d67fa4 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
@@ -1311,6 +1311,21 @@ public class RowValueConstructorIT extends BaseClientManagedTimeIT {
assertEquals("helo3", rs.getString(1));
assertEquals(3, rs.getInt(2));
assertFalse(rs.next());
+
+ stmt = conn.prepareStatement("select pk2, pk3 from RVC1 WHERE tenantId = ? AND (tenantId, pk2, pk3) BETWEEN (?, ?, ?) AND (?, ?, ?) LIMIT 100");
+ stmt.setString(1, "ABC");
+ stmt.setString(2, "ABC");
+ stmt.setString(3, "helo2");
+ stmt.setInt(4, 2);
+ stmt.setString(5, "DEF");
+ stmt.setString(6, "helo3");
+ stmt.setInt(7, 3);
+
+ rs = stmt.executeQuery();
+ assertTrue(rs.next());
+ assertEquals("helo2", rs.getString(1));
+ assertEquals(2, rs.getInt(2));
+ assertFalse(rs.next());
}
// query against tenant specific view. Salted base table.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/ed4ad135/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
index 6a46a7b..f70ba21 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
@@ -643,7 +643,9 @@ public class WhereOptimizer {
// with our minMaxRange, since it spans columns and this would mess up our skip scan.
minMaxRange = minMaxRange.intersect(childSlot.getMinMaxRange());
for (KeySlot slot : childSlot) {
- minMaxExtractNodes.addAll(slot.getKeyPart().getExtractNodes());
+ if (slot != null) {
+ minMaxExtractNodes.addAll(slot.getKeyPart().getExtractNodes());
+ }
}
} else {
for (KeySlot slot : childSlot) {