PHOENIX-3078. Hive storage handler does not work if phoenix.table.name contains the schema name
Signed-off-by: Sergey Soldatov <s...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/b3281697 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/b3281697 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/b3281697 Branch: refs/heads/4.x-HBase-1.1 Commit: b328169718c1ddc0e9a118ee131d2c030ec843d2 Parents: bfb19c1 Author: Youngwoo Kim <yw...@apache.org> Authored: Sun Jul 17 17:45:15 2016 +0900 Committer: Sergey Soldatov <s...@apache.org> Committed: Fri Jul 22 00:10:06 2016 -0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java | 2 +- .../main/java/org/apache/phoenix/hive/util/PhoenixUtil.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3281697/phoenix-hive/src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java ---------------------------------------------------------------------- diff --git a/phoenix-hive/src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java b/phoenix-hive/src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java index d920517..ae3675f 100644 --- a/phoenix-hive/src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java +++ b/phoenix-hive/src/main/java/org/apache/phoenix/hive/PhoenixMetaHook.java @@ -139,7 +139,7 @@ public class PhoenixMetaHook implements HiveMetaHook { ddl.append(" ").append(columnName).append(" ").append(columnType).append(",\n"); } } - ddl.append(" ").append("constraint pk_").append(tableName).append(" primary key(") + ddl.append(" ").append("constraint pk_").append(PhoenixUtil.getTableSchema(tableName.toUpperCase())[1]).append(" primary key(") .append(realRowKeys.deleteCharAt(realRowKeys.length() - 1)).append(")\n)\n"); String tableOptions = tableParameterMap.get(PhoenixStorageHandlerConstants http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3281697/phoenix-hive/src/main/java/org/apache/phoenix/hive/util/PhoenixUtil.java ---------------------------------------------------------------------- diff --git a/phoenix-hive/src/main/java/org/apache/phoenix/hive/util/PhoenixUtil.java b/phoenix-hive/src/main/java/org/apache/phoenix/hive/util/PhoenixUtil.java index 5f9b0ba..9dcb3ef 100644 --- a/phoenix-hive/src/main/java/org/apache/phoenix/hive/util/PhoenixUtil.java +++ b/phoenix-hive/src/main/java/org/apache/phoenix/hive/util/PhoenixUtil.java @@ -71,7 +71,8 @@ public class PhoenixUtil { boolean exist = false; DatabaseMetaData dbMeta = conn.getMetaData(); - try (ResultSet rs = dbMeta.getTables(null, null, tableName.toUpperCase(), null)) { + String[] schemaInfo = getTableSchema(tableName.toUpperCase()); + try (ResultSet rs = dbMeta.getTables(null, schemaInfo[0], schemaInfo[1], null)) { exist = rs.next(); if (LOG.isDebugEnabled()) { @@ -91,7 +92,8 @@ public class PhoenixUtil { Map<Short, String> primaryKeyColumnInfoMap = Maps.newHashMap(); DatabaseMetaData dbMeta = conn.getMetaData(); - try (ResultSet rs = dbMeta.getPrimaryKeys(null, null, tableName.toUpperCase())) { + String[] schemaInfo = getTableSchema(tableName.toUpperCase()); + try (ResultSet rs = dbMeta.getPrimaryKeys(null, schemaInfo[0], schemaInfo[1])) { while (rs.next()) { primaryKeyColumnInfoMap.put(rs.getShort("KEY_SEQ"), rs.getString("COLUMN_NAME")); }