James Taylor created PHOENIX-2139:
-------------------------------------
Summary: LIKE '%' is not filtering out null columns
Key: PHOENIX-2139
URL: https://issues.apache.org/jira/browse/PHOENIX-2139
Project: Phoenix
Issue Type: Bug
Reporter: James Taylor
Found based on PhoenixDatabaseMetaData.getColumns() not filtering when column
name is null.
This test should pass:
{code}
@Test
public void testLikeEverythingExpression() throws Exception {
Connection conn = DriverManager.getConnection(getUrl());
String ddl = "CREATE TABLE t (k1 VARCHAR, k2 VARCHAR, CONSTRAINT pk
PRIMARY KEY (k1,k2))";
conn.createStatement().execute(ddl);
conn.createStatement().execute("UPSERT INTO t VALUES('aa','bb')");
conn.createStatement().execute("UPSERT INTO t VALUES('ab','bc')");
conn.createStatement().execute("UPSERT INTO t VALUES(null,'cc')");
conn.createStatement().execute("UPSERT INTO t VALUES('dd',null)");
conn.commit();
ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t
WHERE k1 LIKE '%'");
assertTrue(rs.next());
assertEquals("aa", rs.getString(1));
assertEquals("bb", rs.getString(2));
assertTrue(rs.next());
assertEquals("ab", rs.getString(1));
assertEquals("bc", rs.getString(2));
assertTrue(rs.next());
assertEquals("dd", rs.getString(1));
assertEquals(null, rs.getString(2));
assertFalse(rs.next());
rs = conn.createStatement().executeQuery("SELECT * FROM t WHERE k2 LIKE
'%'");
assertTrue(rs.next());
assertEquals(null, rs.getString(1));
assertEquals("cc", rs.getString(2));
assertTrue(rs.next());
assertEquals("aa", rs.getString(1));
assertEquals("bb", rs.getString(2));
assertTrue(rs.next());
assertEquals("ab", rs.getString(1));
assertEquals("bc", rs.getString(2));
assertFalse(rs.next());
conn.close();
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)