Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.4 931aebcd8 -> a8389261b
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/a8389261 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a8389261 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a8389261 Branch: refs/heads/4.x-HBase-1.4 Commit: a8389261b5a9e37a00b67bc32ae82db5c788140b Parents: 931aebc Author: Vincent Poon <[email protected]> Authored: Tue Oct 16 16:13:11 2018 -0700 Committer: Vincent Poon <[email protected]> Committed: Tue Oct 16 16:16:05 2018 -0700 ---------------------------------------------------------------------- .../phoenix/coprocessor/MetaDataEndpointImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/a8389261/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 83c7f4d..21370f3 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 @@ -3949,6 +3949,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)) { @@ -3961,13 +3969,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
