Repository: phoenix
Updated Branches:
  refs/heads/master 01542165b -> bf26ef233


Phoenix-1147: Ensure data table is sent to client if index table changes states 
- Addendum to handle schema name


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/bf26ef23
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/bf26ef23
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/bf26ef23

Branch: refs/heads/master
Commit: bf26ef23370ed4bf455bd09215a24b48f5324196
Parents: 0154216
Author: Jeffrey Zhong <jeffr...@apache.org>
Authored: Fri Aug 8 16:52:00 2014 -0700
Committer: Jeffrey Zhong <jeffr...@apache.org>
Committed: Fri Aug 8 16:58:00 2014 -0700

----------------------------------------------------------------------
 .../phoenix/end2end/index/MutableIndexFailureIT.java    | 12 +++++++-----
 .../phoenix/coprocessor/MetaDataRegionObserver.java     |  8 ++++++--
 2 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/bf26ef23/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
index 103c81b..e499c3b 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
@@ -109,7 +109,7 @@ public class MutableIndexFailureIT extends BaseTest {
     private static HBaseTestingUtility util;
     private Timer scheduleTimer;
 
-    private static final String SCHEMA_NAME = "";
+    private static final String SCHEMA_NAME = "S";
     private static final String INDEX_TABLE_NAME = "I";
     private static final String DATA_TABLE_FULL_NAME = 
SchemaUtil.getTableName(SCHEMA_NAME, "T");
     private static final String INDEX_TABLE_FULL_NAME = 
SchemaUtil.getTableName(SCHEMA_NAME, "I");
@@ -178,7 +178,7 @@ public class MutableIndexFailureIT extends BaseTest {
         stmt.execute();
         conn.commit();
 
-        TableName indexTable = TableName.valueOf(INDEX_TABLE_NAME);
+        TableName indexTable = TableName.valueOf(INDEX_TABLE_FULL_NAME);
         HBaseAdmin admin = this.util.getHBaseAdmin();
         HTableDescriptor indexTableDesc = admin.getTableDescriptor(indexTable);
         try{
@@ -221,7 +221,8 @@ public class MutableIndexFailureIT extends BaseTest {
         admin.createTable(indexTableDesc);
         do {
           Thread.sleep(15 * 1000); // sleep 15 secs
-          rs = conn.getMetaData().getTables(null, "", INDEX_TABLE_NAME, new 
String[] {PTableType.INDEX.toString()});
+          rs = conn.getMetaData().getTables(null, 
StringUtil.escapeLike(SCHEMA_NAME), INDEX_TABLE_NAME,
+              new String[] { PTableType.INDEX.toString() });
           assertTrue(rs.next());
           
if(PIndexState.ACTIVE.toString().equals(rs.getString("INDEX_STATE"))){
               break;
@@ -275,7 +276,7 @@ public class MutableIndexFailureIT extends BaseTest {
         
         // find a RS which doesn't has CATALOG table
         TableName catalogTable = TableName.valueOf("SYSTEM.CATALOG");
-        TableName indexTable = TableName.valueOf(INDEX_TABLE_NAME);
+        TableName indexTable = TableName.valueOf(INDEX_TABLE_FULL_NAME);
         final HBaseCluster cluster = this.util.getHBaseCluster();
         Collection<ServerName> rss = cluster.getClusterStatus().getServers();
         HBaseAdmin admin = this.util.getHBaseAdmin();
@@ -320,7 +321,8 @@ public class MutableIndexFailureIT extends BaseTest {
         // Verify the metadata for index is correct.       
         do {
           Thread.sleep(15 * 1000); // sleep 15 secs
-          rs = conn.getMetaData().getTables(null, "", INDEX_TABLE_NAME, new 
String[] {PTableType.INDEX.toString()});
+          rs = conn.getMetaData().getTables(null, 
StringUtil.escapeLike(SCHEMA_NAME), INDEX_TABLE_NAME,
+              new String[] { PTableType.INDEX.toString() });
           assertTrue(rs.next());
           
if(PIndexState.ACTIVE.toString().equals(rs.getString("INDEX_STATE"))){
               break;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/bf26ef23/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
index 3a72c5d..6ce0148 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
@@ -207,6 +207,7 @@ public class MetaDataRegionObserver extends 
BaseRegionObserver {
 
                     byte[][] rowKeyMetaData = new byte[3][];
                     SchemaUtil.getVarChars(r.getRow(), 3, rowKeyMetaData);
+                    byte[] schemaName = 
rowKeyMetaData[PhoenixDatabaseMetaData.SCHEMA_NAME_INDEX];
                     byte[] indexTable = 
rowKeyMetaData[PhoenixDatabaseMetaData.TABLE_NAME_INDEX];
 
                     // validity check
@@ -218,8 +219,11 @@ public class MetaDataRegionObserver extends 
BaseRegionObserver {
                     if (conn == null) {
                         conn = 
DriverManager.getConnection(getJdbcUrl()).unwrap(PhoenixConnection.class);
                     }
-                    PTable dataPTable = PhoenixRuntime.getTable(conn, 
Bytes.toString(dataTable));
-                    PTable indexPTable = PhoenixRuntime.getTable(conn, 
Bytes.toString(indexTable));
+
+                    String dataTableFullName = 
SchemaUtil.getTableName(schemaName, dataTable);
+                    String indexTableFullName = 
SchemaUtil.getTableName(schemaName, indexTable);
+                    PTable dataPTable = PhoenixRuntime.getTable(conn, 
dataTableFullName);
+                    PTable indexPTable = PhoenixRuntime.getTable(conn, 
indexTableFullName);
                     if 
(!MetaDataUtil.tableRegionsOnline(this.env.getConfiguration(), indexPTable)) {
                         LOG.debug("Index rebuild has been skipped because not 
all regions of index table="
                                 + indexPTable.getName() + " are online.");

Reply via email to