Repository: phoenix Updated Branches: refs/heads/4.14-HBase-0.98 e747406cd -> afaaf5e0a
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/afaaf5e0 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/afaaf5e0 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/afaaf5e0 Branch: refs/heads/4.14-HBase-0.98 Commit: afaaf5e0a2159ca838fdd7d8c3d79f3bb3892cb8 Parents: e747406 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:42 2018 -0700 ---------------------------------------------------------------------- .../phoenix/coprocessor/MetaDataEndpointImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/afaaf5e0/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 caaae8c..ab24d23 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 @@ -3696,6 +3696,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)) { @@ -3708,13 +3716,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
