Jacob Isaac created PHOENIX-7616:
------------------------------------

             Summary: NPE when there are conditional expressions on indexed 
columns 
                 Key: PHOENIX-7616
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7616
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 5.3
            Reporter: Jacob Isaac


To reproduce the following test can be included in ConditionalTTLExpressionIT
 
@Test
public void testNulls3() throws Exception {
if (tableLevelMaxLookback != 0) {
return;
}
String ttlExpression = "VAL2 = 345";
createTable(ttlExpression);
List<String> indexedColumns = Lists.newArrayList("VAL2"); // indexed column is 
null
List<String> includedColumns = Lists.newArrayList("VAL4");
String indexName = createIndex(indexedColumns, includedColumns, false);
String tableName = schemaBuilder.getEntityTableName();
injectEdge();
int rowCount = 1;
long actual;
try (Connection conn = DriverManager.getConnection(getUrl())) {
populateTable(conn, rowCount);
actual = TestUtil.getRowCount(conn, tableName, true);
assertEquals(rowCount, actual);
// expire the row
updateColumns(conn, 0,
Lists.newArrayList("VAL2", "VAL4"), Lists.newArrayList(null, null));
actual = TestUtil.getRowCount(conn, tableName, true);
assertEquals(1, actual);
actual = TestUtil.getRowCountFromIndex(conn, tableName, indexName);
assertEquals(1, actual);
// now do a partial update over the expired row,
int newVal =123;
updateColumn(conn, 0, "VAL2", newVal);
try (ResultSet rs = readRow(conn, 0)) {
assertTrue(rs.next());
for (String col : COLUMNS) {
if (!col.equals("VAL2") && !col.equals("VAL4") ) {
assertNotNull(rs.getObject(col));
} else if (col.equals("VAL4")) {
assertNull(rs.getObject(col));
} else {
assertEquals(newVal, rs.getInt("VAL2"));
}
}
}
actual = TestUtil.getRowCount(conn, tableName, true);
assertEquals(1, actual);
actual = TestUtil.getRowCountFromIndex(conn, tableName, indexName);
assertEquals(1, actual);
verifyIndexTable(tableName, indexName, conn);
}
}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to