Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.2 1d7c8059a -> a6f1b6369
PHOENIX-4182 DatabaseMetaData.getTables throws exception when getting SEQUENCE information Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a6f1b636 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a6f1b636 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a6f1b636 Branch: refs/heads/4.x-HBase-1.2 Commit: a6f1b63692b3dec38aef4a9b44d28116c08344a4 Parents: 699253c Author: James Taylor <jtay...@salesforce.com> Authored: Mon Sep 11 13:06:17 2017 -0700 Committer: James Taylor <jtay...@salesforce.com> Committed: Mon Sep 11 14:48:17 2017 -0700 ---------------------------------------------------------------------- .../phoenix/end2end/QueryDatabaseMetaDataIT.java | 13 +++++++++++++ .../apache/phoenix/jdbc/PhoenixDatabaseMetaData.java | 14 ++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/a6f1b636/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java ---------------------------------------------------------------------- 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 44012b9..12c0bd3 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 @@ -275,6 +275,19 @@ public class QueryDatabaseMetaDataIT extends BaseClientManagedTimeIT { assertEquals("BAS", rs.getString("TABLE_NAME")); assertEquals(PTableType.TABLE.toString(), rs.getString("TABLE_TYPE")); assertFalse(rs.next()); + + rs = dbmd.getTables(null, "B", null, new String[] {PhoenixDatabaseMetaData.SEQUENCE_TABLE_TYPE}); + assertTrue(rs.next()); + assertNull(rs.getString("TABLE_CAT")); + assertEquals("B", rs.getString("TABLE_SCHEM")); + assertEquals("S1", rs.getString("TABLE_NAME")); + assertEquals(PhoenixDatabaseMetaData.SEQUENCE_TABLE_TYPE, rs.getString("TABLE_TYPE")); + assertTrue(rs.next()); + assertNull(rs.getString("TABLE_CAT")); + assertEquals("B", rs.getString("TABLE_SCHEM")); + assertEquals("S3", rs.getString("TABLE_NAME")); + assertEquals(PhoenixDatabaseMetaData.SEQUENCE_TABLE_TYPE, rs.getString("TABLE_TYPE")); + assertFalse(rs.next()); } @Test http://git-wip-us.apache.org/repos/asf/phoenix/blob/a6f1b636/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java index 24bfde7..ac7f3ef 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java @@ -1031,10 +1031,10 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData { public Integer getScale() { return null; } - @Override - public SortOrder getSortOrder() { - return SortOrder.getDefault(); - } + @Override + public SortOrder getSortOrder() { + return SortOrder.getDefault(); + } }; private static final RowProjector TABLE_TYPE_ROW_PROJECTOR = new RowProjector(Arrays.<ColumnProjector>asList( new ExpressionProjector(TABLE_TYPE, SYSTEM_CATALOG, @@ -1160,10 +1160,12 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData { StringBuilder whereClause = new StringBuilder(); addTenantIdFilter(whereClause, catalog); if (schemaPattern != null) { - whereClause.append(" and " + SEQUENCE_SCHEMA + (schemaPattern.length() == 0 ? " is null" : " like '" + StringUtil.escapeStringConstant(schemaPattern) + "'\n" )); + appendConjunction(whereClause); + whereClause.append(SEQUENCE_SCHEMA + (schemaPattern.length() == 0 ? " is null" : " like '" + StringUtil.escapeStringConstant(schemaPattern) + "'\n" )); } if (tableNamePattern != null) { - whereClause.append(" and " + SEQUENCE_NAME + " like '" + StringUtil.escapeStringConstant(tableNamePattern) + "'\n" ); + appendConjunction(whereClause); + whereClause.append(SEQUENCE_NAME + " like '" + StringUtil.escapeStringConstant(tableNamePattern) + "'\n" ); } if (whereClause.length() > 0) { buf.append(" where\n");