Repository: phoenix
Updated Branches:
  refs/heads/4.14-HBase-1.3 f28b9a3b8 -> ca52e621e


PHOENIX-4963 Do not throw when transitioning to PENDING_DISABLE if index is 
already disabled


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

Branch: refs/heads/4.14-HBase-1.3
Commit: ca52e621e26f9991bc245dfa5188b09ad5037a6c
Parents: f28b9a3
Author: Vincent Poon <[email protected]>
Authored: Tue Oct 16 16:13:11 2018 -0700
Committer: Vincent Poon <[email protected]>
Committed: Tue Oct 16 16:19:04 2018 -0700

----------------------------------------------------------------------
 .../phoenix/coprocessor/MetaDataEndpointImpl.java    | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ca52e621/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index db1f7c3..ea72a01 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@ -3864,6 +3864,14 @@ public class MetaDataEndpointImpl extends 
MetaDataProtocol implements Coprocesso
                         return;
                     }
                 } else if (currentState == PIndexState.DISABLE) {
+                    // Index already disabled, so can't revert to 
PENDING_DISABLE
+                    if (newState == PIndexState.PENDING_DISABLE) {
+                        // returning TABLE_ALREADY_EXISTS here means the 
client doesn't throw an exception
+                        
builder.setReturnCode(MetaDataProtos.MutationCode.TABLE_ALREADY_EXISTS);
+                        
builder.setMutationTime(EnvironmentEdgeManager.currentTimeMillis());
+                        done.run(builder.build());
+                        return;
+                    }
                     // Can't transition back to INACTIVE if 
INDEX_DISABLE_TIMESTAMP is 0
                     if (newState != PIndexState.BUILDING && newState != 
PIndexState.DISABLE &&
                         (newState != PIndexState.INACTIVE || curTimeStampVal 
== 0)) {
@@ -3876,13 +3884,6 @@ public class MetaDataEndpointImpl extends 
MetaDataProtocol implements Coprocesso
                     if (newState == PIndexState.ACTIVE) {
                         newState = PIndexState.DISABLE;
                     }
-                    // Can't transition from DISABLE to PENDING_DISABLE
-                    if (newState == PIndexState.PENDING_DISABLE) {
-                        
builder.setReturnCode(MetaDataProtos.MutationCode.UNALLOWED_TABLE_MUTATION);
-                        
builder.setMutationTime(EnvironmentEdgeManager.currentTimeMillis());
-                        done.run(builder.build());
-                        return;
-                    }
                 }
                 if (newState == PIndexState.PENDING_DISABLE && currentState != 
PIndexState.PENDING_DISABLE) {
                     // reset count for first PENDING_DISABLE

Reply via email to