You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by mu...@apache.org on 2018/02/21 00:28:28 UTC
phoenix git commit: PHOENIX-4414 Exception while using database
metadata commands on tenant specific connection
Repository: phoenix
Updated Branches:
refs/heads/5.x-HBase-2.0 df98ad3f3 -> d931f8c79
PHOENIX-4414 Exception while using database metadata commands on tenant specific connection
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/d931f8c7
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/d931f8c7
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/d931f8c7
Branch: refs/heads/5.x-HBase-2.0
Commit: d931f8c79f07693330f9130e56b767492dc25a2b
Parents: df98ad3
Author: Mujtaba <mu...@apache.org>
Authored: Tue Feb 20 16:28:01 2018 -0800
Committer: Mujtaba <mu...@apache.org>
Committed: Tue Feb 20 16:28:01 2018 -0800
----------------------------------------------------------------------
.../end2end/QueryDatabaseMetaDataIT.java | 27 ++++++++++++++++++++
.../phoenix/jdbc/PhoenixDatabaseMetaData.java | 2 +-
2 files changed, 28 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/d931f8c7/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 fbe2479..0f52250 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
@@ -70,6 +70,7 @@ import org.apache.phoenix.schema.types.PChar;
import org.apache.phoenix.schema.types.PDecimal;
import org.apache.phoenix.schema.types.PInteger;
import org.apache.phoenix.schema.types.PLong;
+import org.apache.phoenix.util.PhoenixRuntime;
import org.apache.phoenix.util.PropertiesUtil;
import org.apache.phoenix.util.SchemaUtil;
import org.apache.phoenix.util.StringUtil;
@@ -110,6 +111,32 @@ public class QueryDatabaseMetaDataIT extends ParallelStatsDisabledIT {
}
@Test
+ public void testMetadataTenantSpecific() throws SQLException {
+ // create multi-tenant table
+ String tableName = generateUniqueName();
+ try (Connection conn = DriverManager.getConnection(getUrl())) {
+ String baseTableDdl = "CREATE TABLE %s (K1 VARCHAR NOT NULL, K2 VARCHAR NOT NULL, V VARCHAR CONSTRAINT PK PRIMARY KEY(K1, K2)) MULTI_TENANT=true";
+ conn.createStatement().execute(String.format(baseTableDdl, tableName));
+ }
+
+ // create tenant specific view and execute metdata data call with tenant specific connection
+ String tenantId = generateUniqueName();
+ Properties tenantProps = new Properties();
+ tenantProps.setProperty(PhoenixRuntime.TENANT_ID_ATTRIB, tenantId);
+ try (Connection tenantConn = DriverManager.getConnection(getUrl(), tenantProps)) {
+ String viewName = generateUniqueName();
+ String viewDdl = "CREATE VIEW %s AS SELECT * FROM %s";
+ tenantConn.createStatement().execute(String.format(viewDdl, viewName, tableName));
+ DatabaseMetaData dbmd = tenantConn.getMetaData();
+ ResultSet rs = dbmd.getTables(tenantId, "", viewName, null);
+ assertTrue(rs.next());
+ assertEquals(rs.getString("TABLE_NAME"), viewName);
+ assertEquals(PTableType.VIEW.toString(), rs.getString("TABLE_TYPE"));
+ assertFalse(rs.next());
+ }
+ }
+
+ @Test
public void testTableMetadataScan() throws SQLException {
String tableAName = generateUniqueName() + "TABLE";
String tableASchema = "";
http://git-wip-us.apache.org/repos/asf/phoenix/blob/d931f8c7/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 7ca178b..fde91a7 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
@@ -446,7 +446,7 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData {
appendConjunction(buf);
buf.append(" TENANT_ID LIKE '" + StringUtil.escapeStringConstant(tenantIdPattern) + "' ");
if (tenantId != null) {
- buf.append(" and TENANT_ID + = '" + StringUtil.escapeStringConstant(tenantId.getString()) + "' ");
+ buf.append(" and TENANT_ID = '" + StringUtil.escapeStringConstant(tenantId.getString()) + "' ");
}
}
}