ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { byte[] schema = rs.getBytes("nspname"); byte[] procedureName = rs.getBytes("proname"); Array argNamesArray = rs.getArray("proargnames"); if (argNamesArray != null) { argNames = (String[]) argNamesArray.getArray(); Array argModesArray = rs.getArray("proargmodes"); if (argModesArray != null) { argModes = (String[]) argModesArray.getArray(); Array allArgTypesArray = rs.getArray("proallargtypes"); if (allArgTypesArray != null) { allArgTypes = (Long[]) allArgTypesArray.getArray(); + " AND NOT a.attisdropped AND a.attnum > 0 ORDER BY a.attnum "; Statement columnstmt = connection.createStatement(); ResultSet columnrs = columnstmt.executeQuery(columnsql); while (columnrs.next()) { int columnTypeOid = (int) columnrs.getLong("atttypid"); byte[][] tuple = new byte[columns][];
@Test public void testArrayFillFunctionDate() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"DATE\",3) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{new Date(1432102334184l), new Date(1432102334184l), new Date(1432102334184l)}; Array array = conn.createArrayOf("DATE", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@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()); }
ResultSet rs = connection.createStatement().executeQuery(sql); while (rs.next()) Array argNamesArray = rs.getArray("proargnames"); if (argNamesArray != null) argNames = (String[])argNamesArray.getArray(); Array argModesArray = rs.getArray("proargmodes"); if (argModesArray != null) argModes = (String[])argModesArray.getArray(); Array allArgTypesArray = rs.getArray("proallargtypes"); if (allArgTypesArray != null) { ResultSet columnrs = connection.createStatement().executeQuery(columnsql); while (columnrs.next())
@Test public void testArrayRemoveFunctionCharsWithNull() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(chars,NULL) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("CHAR", new String[] { "a", "bbbb", "c", "ddd", "e", "c" }), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayRemoveFunctionOneElement() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(oneItem,'alone') FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("VARCHAR", new String[0]), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionTime() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"time\",3) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{new Time(1432102334184l), new Time(1432102334184l), new Time(1432102334184l)}; Array array = conn.createArrayOf("TIME", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionTimestamp() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"timestamp\",3) 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()); }
@Test public void testArrayFillFunctionInteger() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"integer\",4) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{34, 34, 34, 34}; Array array = conn.createArrayOf("INTEGER", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayRemoveFunctionVarchar() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(varchars,'23234') FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("VARCHAR", new String[] { "2345", "46345" }), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayRemoveFunctionFirstElement() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(varchars,'2345') FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("VARCHAR", new String[] { "46345", "23234" }), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayRemoveFunctionMiddleElement() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(varchars,'46345') FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("VARCHAR", new String[] { "2345", "23234" }), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayRemoveFunctionVarcharFromCharArray() throws Exception { ResultSet rs = conn.createStatement().executeQuery( "SELECT ARRAY_REMOVE(chars,varchar1) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); assertEquals(conn.createArrayOf("CHAR", new String[] { "bbbb", "c", "ddd", "e", "c" }), rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionBigint() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"bigint\",4) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{34567l, 34567l, 34567l, 34567l}; Array array = conn.createArrayOf("BIGINT", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionVarchar() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"varchar\",5) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); String[] strings = new String[]{"foo", "foo", "foo", "foo", "foo"}; Array array = conn.createArrayOf("VARCHAR", strings); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionDouble() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"double\",4) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{23.45, 23.45, 23.45, 23.45}; Array array = conn.createArrayOf("DOUBLE", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@Test public void testArrayFillFunctionChar() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"char\",4) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{"foo", "foo", "foo", "foo"}; Array array = conn.createArrayOf("CHAR", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }
@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()); }
@Test(expected = IllegalArgumentException.class) public void testArrayFillFunctionInvalidLength1() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(\"timestamp\",length2) 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()); }
@Test public void testArrayFillFunctionWithNestedFunctions3() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); ResultSet rs; rs = conn.createStatement().executeQuery( "SELECT ARRAY_FILL(3.4, ARRAY_LENGTH(ARRAY[34, 45])) FROM " + tableName + " WHERE region_name = 'SF Bay Area'"); assertTrue(rs.next()); Object[] objects = new Object[]{BigDecimal.valueOf(3.4), BigDecimal.valueOf(3.4)}; Array array = conn.createArrayOf("DECIMAL", objects); assertEquals(array, rs.getArray(1)); assertFalse(rs.next()); }