diff --git a/src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetColumns.sql b/src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetColumns.sql index b0ca39944..7e450f71f 100644 --- a/src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetColumns.sql +++ b/src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetColumns.sql @@ -32,7 +32,7 @@ SELECT TABLE_CATALOG AS "TABLE_CAT", TABLE_SCHEMA AS "TABLE_SCHEM", TABLE_NAME A WHEN DATA_TYPE LIKE 'ARRAY' THEN CASE WHEN spanner_type LIKE '%[]' THEN - CONCAT('_', REPLACE(spanner_type, '[]', '')) + CONCAT('_'::varchar, REPLACE(spanner_type, '[]'::varchar, ''::varchar)) ELSE spanner_type END ELSE DATA_TYPE diff --git a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgNumericTest.java b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgNumericTest.java index a7c7a206d..b1bf1bce7 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgNumericTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgNumericTest.java @@ -182,6 +182,14 @@ public void testResultSet() throws SQLException { assertEquals(new BigDecimal(negativeBigNumeric), resultSet.getBigDecimal("col1")); assertEquals(new BigDecimal(negativeBigNumeric), resultSet.getObject("col1")); assertEquals(Value.pgNumeric(negativeBigNumeric), resultSet.getObject("col1", Value.class)); + + // Just verify that the getColumns method works + try (ResultSet columns = connection.getMetaData().getColumns(null, null, null, null)) { + //noinspection StatementWithEmptyBody + while (columns.next()) { + // ignore + } + } } }