@Test
public void testIndexCreation() throws Exception {
Properties props = new Properties(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {
conn.createStatement().execute("CREATE TABLE IF NOT EXISTS t1 "
+ "( id BIGINT NOT NULL PRIMARY KEY" + ", t BINARY(16) NOT NULL" + ", e BINARY(16) NOT NULL" + ", d DATE NOT NULL" + ", y BINARY(16) NULL" + ", v BINARY(16) NULL)");
conn.createStatement().execute("CREATE INDEX IF NOT EXISTS index1 ON t1 (t, e, d DESC)");
conn.createStatement().execute("CREATE INDEX IF NOT EXISTS index2 ON t1 (t, d DESC, e)");
String upsert = "UPSERT INTO t1 values (?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(upsert);
stmt.setInt(1, 1);
stmt.setBytes(2, "ABC".getBytes());
stmt.setBytes(3, "BCD".getBytes());
stmt.setDate(4, new Date(System.currentTimeMillis()));
stmt.setBytes(5, "CDE".getBytes());
stmt.setBytes(6, "BBNNB".getBytes());
stmt.executeUpdate();
conn.commit();
} finally {
conn.close();
}
}
Exception:
java.lang.IllegalArgumentException: Unsupported non nullable index type BINARY
at org.apache.phoenix.util.IndexUtil.getIndexColumnDataType(IndexUtil.java:81)
at org.apache.phoenix.index.IndexMaintainer.buildRowKey(IndexMaintainer.java:345)
at org.apache.phoenix.index.IndexMaintainer.buildUpdateMutation(IndexMaintainer.java:391)
at org.apache.phoenix.util.IndexUtil.generateIndexData(IndexUtil.java:185)
at org.apache.phoenix.execute.MutationState$1.next(MutationState.java:203)
at org.apache.phoenix.execute.MutationState$1.next(MutationState.java:186)
at org.apache.phoenix.execute.MutationState.commit(MutationState.java:347)
at org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:351)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:229)
at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:185)
at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:146)
at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:151)