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/9d066eb6
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/9d066eb6
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/9d066eb6

Branch: refs/heads/4.x-HBase-0.98
Commit: 9d066eb6c56bbd075d8e8287fe2cf10a3334b00e
Parents: 78031ba
Author: James Taylor <[email protected]>
Authored: Mon Sep 11 13:06:17 2017 -0700
Committer: James Taylor <[email protected]>
Committed: Mon Sep 11 14:51:40 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/9d066eb6/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/9d066eb6/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 9acec96..9e218d6 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,
@@ -1161,10 +1161,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");

Reply via email to