use of java.sql.Array in project phoenix by apache.
the class ArrayFillFunctionIT method testArrayFillFunctionInvalidLength2.
@Test(expected = IllegalArgumentException.class)
public void testArrayFillFunctionInvalidLength2() throws Exception {
Connection conn = DriverManager.getConnection(getUrl());
ResultSet rs;
rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(\"timestamp\",length1) FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
assertTrue(rs.next());
Object[] objects = new Object[] { new Timestamp(1432102334184l), new Timestamp(1432102334184l), new Timestamp(1432102334184l) };
Array array = conn.createArrayOf("TIMESTAMP", objects);
assertEquals(array, rs.getArray(1));
assertFalse(rs.next());
}
use of java.sql.Array in project phoenix by apache.
the class ArrayFillFunctionIT method testArrayFillFunctionWithUpsert2.
@Test
public void testArrayFillFunctionWithUpsert2() throws Exception {
Connection conn = DriverManager.getConnection(getUrl());
String regions = generateUniqueName();
String ddl = "CREATE TABLE " + regions + " (region_name VARCHAR PRIMARY KEY,integers INTEGER[])";
conn.createStatement().execute(ddl);
String dml = "UPSERT INTO " + regions + "(region_name,integers) VALUES('SF Bay Area',ARRAY_FILL(3456,3))";
conn.createStatement().execute(dml);
conn.commit();
ResultSet rs;
rs = conn.createStatement().executeQuery("SELECT integers FROM " + regions + " WHERE region_name = 'SF Bay Area'");
assertTrue(rs.next());
Integer[] integers = new Integer[] { 3456, 3456, 3456 };
Array array = conn.createArrayOf("INTEGER", integers);
assertEquals(array, rs.getArray(1));
assertFalse(rs.next());
}
use of java.sql.Array in project phoenix by apache.
the class ArrayFillFunctionIT method testArrayFillFunctionVarChar.
@Test
public void testArrayFillFunctionVarChar() throws Exception {
Connection conn = DriverManager.getConnection(getUrl());
ResultSet rs;
rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(\"varchar\",4) FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
assertTrue(rs.next());
Object[] objects = new Object[] { "foo", "foo", "foo", "foo" };
Array array = conn.createArrayOf("VARCHAR", objects);
assertEquals(array, rs.getArray(1));
assertFalse(rs.next());
}
use of java.sql.Array in project phoenix by apache.
the class HashJoinMoreIT method testJoinWithMultiTenancy.
// PHOENIX-2381
@Test
public void testJoinWithMultiTenancy() throws Exception {
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {
conn.createStatement().execute("CREATE TABLE INVENTORY (" + " TENANTID UNSIGNED_INT NOT NULL" + ",ID UNSIGNED_INT NOT NULL" + ",FOO UNSIGNED_INT NOT NULL" + ",\"TIMESTAMP\" UNSIGNED_LONG NOT NULL" + ",CODES INTEGER ARRAY[] NOT NULL" + ",V UNSIGNED_LONG" + " CONSTRAINT pk PRIMARY KEY (TENANTID, ID, FOO, \"TIMESTAMP\" , CODES))" + " DEFAULT_COLUMN_FAMILY ='E'," + " MULTI_TENANT=true");
PreparedStatement upsertStmt = conn.prepareStatement("upsert into INVENTORY " + "(tenantid, id, foo, \"TIMESTAMP\" , codes) " + "values (?, ?, ?, ?, ?)");
upsertStmt.setInt(1, 15);
upsertStmt.setInt(2, 5);
upsertStmt.setInt(3, 0);
upsertStmt.setLong(4, 6);
Array array = conn.createArrayOf("INTEGER", new Object[] { 1, 2 });
upsertStmt.setArray(5, array);
upsertStmt.executeUpdate();
conn.commit();
conn.createStatement().execute("CREATE TABLE PRODUCT_IDS (" + " PRODUCT_ID UNSIGNED_INT NOT NULL" + ",PRODUCT_NAME VARCHAR" + " CONSTRAINT pk PRIMARY KEY (PRODUCT_ID))" + " DEFAULT_COLUMN_FAMILY ='NAME'");
upsertStmt = conn.prepareStatement("upsert into PRODUCT_IDS " + "(product_id, product_name) " + "values (?, ?)");
upsertStmt.setInt(1, 5);
upsertStmt.setString(2, "DUMMY");
upsertStmt.executeUpdate();
conn.commit();
conn.close();
// Create a tenant-specific connection.
props.setProperty("TenantId", "15");
conn = DriverManager.getConnection(getUrl(), props);
ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM INVENTORY INNER JOIN PRODUCT_IDS ON (PRODUCT_ID = INVENTORY.ID)");
assertTrue(rs.next());
assertEquals(rs.getInt(1), 5);
assertFalse(rs.next());
rs.close();
rs = conn.createStatement().executeQuery("SELECT * FROM INVENTORY RIGHT JOIN PRODUCT_IDS ON (PRODUCT_ID = INVENTORY.ID)");
assertTrue(rs.next());
assertEquals(rs.getInt(1), 5);
assertFalse(rs.next());
} finally {
conn.close();
}
}
use of java.sql.Array in project phoenix by apache.
the class RegexpSplitFunctionIT method testSplit_Upsert.
@Test
public void testSplit_Upsert() throws SQLException {
Connection conn = DriverManager.getConnection(getUrl());
initTable(conn, "ONE,TWO,THREE");
conn.createStatement().executeUpdate("UPSERT INTO " + tableName + " (ID, ARR) SELECT ID, " + "REGEXP_SPLIT(VAL, ',') FROM " + tableName);
conn.commit();
ResultSet rs = conn.createStatement().executeQuery("SELECT ARR FROM " + tableName);
assertTrue(rs.next());
Array array = rs.getArray(1);
String[] values = (String[]) array.getArray();
assertArrayEquals(new String[] { "ONE", "TWO", "THREE" }, values);
}
Aggregations