[ https://issues.apache.org/jira/browse/PHOENIX-7616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tanuj Khurana reassigned PHOENIX-7616: -------------------------------------- Assignee: Tanuj Khurana > 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 > Assignee: Tanuj Khurana > Priority: Major > > 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)