diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java index f1ff66e587d..5ec4e0931fc 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java @@ -430,6 +430,12 @@ public void testSchemaMetadataScan() throws SQLException { assertEquals(rs.getString(2), null); assertFalse(rs.next()); + rs = dbmd.getSchemas(null, ""); + assertTrue(rs.next()); + assertEquals(rs.getString(1), null); + assertEquals(rs.getString(2), null); + assertFalse(rs.next()); + rs = dbmd.getSchemas(null, null); assertTrue(rs.next()); assertEquals(null, rs.getString("TABLE_SCHEM")); diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java index 27021421da2..b6b76fbe7a7 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/util/QueryUtil.java @@ -545,8 +545,10 @@ public static PreparedStatement getSchemasStmt( " where " + COLUMN_NAME + " is null"); addTenantIdFilter(connection, buf, catalog, parameterValues); if (schemaPattern != null) { - buf.append(" and " + TABLE_SCHEM + " like ?"); - parameterValues.add(schemaPattern); + buf.append(" and " + TABLE_SCHEM + (schemaPattern.length() == 0 ? " is null" : " like ?")); + if(schemaPattern.length() > 0) { + parameterValues.add(schemaPattern); + } } if (SchemaUtil.isNamespaceMappingEnabled(null, connection.getQueryServices().getProps())) { buf.append(" and " + TABLE_NAME + " = '" + MetaDataClient.EMPTY_TABLE + "'");