Search in sources :

Example 51 with Array

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());
}
Also used : Array(java.sql.Array) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) Timestamp(java.sql.Timestamp) Test(org.junit.Test)

Example 52 with Array

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());
}
Also used : Array(java.sql.Array) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) Test(org.junit.Test)

Example 53 with Array

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());
}
Also used : Array(java.sql.Array) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) Test(org.junit.Test)

Example 54 with Array

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();
    }
}
Also used : Array(java.sql.Array) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement) Properties(java.util.Properties) Test(org.junit.Test)

Example 55 with Array

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);
}
Also used : Array(java.sql.Array) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) Test(org.junit.Test)

Aggregations

Array (java.sql.Array)124 Test (org.junit.Test)85 Connection (java.sql.Connection)74 ResultSet (java.sql.ResultSet)69 PreparedStatement (java.sql.PreparedStatement)46 Properties (java.util.Properties)29 PhoenixArray (org.apache.phoenix.schema.types.PhoenixArray)25 ArrayList (java.util.ArrayList)24 BaseTest (org.apache.phoenix.query.BaseTest)22 SQLException (java.sql.SQLException)19 ScalarType (org.apache.calcite.avatica.ColumnMetaData.ScalarType)16 Timestamp (java.sql.Timestamp)10 Date (java.sql.Date)8 Random (java.util.Random)7 Time (java.sql.Time)6 Statement (java.sql.Statement)5 Struct (java.sql.Struct)5 HashMap (java.util.HashMap)5 List (java.util.List)5 BigDecimal (java.math.BigDecimal)4