You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2015/07/15 02:05:59 UTC

phoenix git commit: PHOENIX-2111 Addendum - prevent IllegalStateException for older clients

Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 4198ea6af -> 481a802ee


PHOENIX-2111 Addendum - prevent IllegalStateException for older clients


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 481a802ee56b0560c34cec0bb956931f73c73d2c
Parents: 4198ea6
Author: Samarth <sa...@salesforce.com>
Authored: Tue Jul 14 17:05:21 2015 -0700
Committer: Samarth <sa...@salesforce.com>
Committed: Tue Jul 14 17:05:35 2015 -0700

----------------------------------------------------------------------
 .../coprocessor/MetaDataEndpointImpl.java       | 22 ++++----------------
 1 file changed, 4 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/481a802e/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 6372700..da8110c 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
@@ -1110,20 +1110,6 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso
         return physicalTableRow;
     }
     
-    private long getSequenceNumberForTable(byte[] headerRowKey) throws IOException {
-        Get get = new Get(headerRowKey);
-        get.addColumn(TABLE_FAMILY_BYTES, TABLE_SEQ_NUM_BYTES);
-        byte[] b;
-        try (HTableInterface hTable = ServerUtil.getHTableForCoprocessorScan(env, PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES)) {
-            Result result = hTable.get(get);
-            b = result.getValue(TABLE_FAMILY_BYTES, TABLE_SEQ_NUM_BYTES);
-        }
-        if (b == null) {
-            throw new IllegalArgumentException("No rows returned for the row key: " + Bytes.toString(headerRowKey));
-        }
-        return PLong.INSTANCE.getCodec().decodeLong(new ImmutableBytesWritable(b), SortOrder.getDefault());
-    }
-    
     @Override
     public void createTable(RpcController controller, CreateTableRequest request,
             RpcCallback<MetaDataResponse> done) {
@@ -1203,10 +1189,10 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso
                         if (tableType == PTableType.VIEW && viewPhysicalTableRow != null && request.hasClientVersion()) {
                             // Starting 4.5, the client passes the sequence number of the physical table in the table metadata.
                             parentTableSeqNumber = MetaDataUtil.getSequenceNumber(viewPhysicalTableRow);
-                        } else if (tableType == PTableType.VIEW) {
-                            // Before 4.5, due to a bug, the parent table key wasn't available. Using get to 
-                            // figure out the parent table sequence number.
-                            parentTableSeqNumber = getSequenceNumberForTable(parentTableKey);
+                        } else if (tableType == PTableType.VIEW && !request.hasClientVersion()) {
+                            // Before 4.5, due to a bug, the parent table key wasn't available.
+                            // So don't do anything and prevent the exception from being thrown.
+                            parentTableSeqNumber = parentTable.getSequenceNumber();
                         } else {
                             parentTableSeqNumber = MetaDataUtil.getParentSequenceNumber(tableMetadata);
                         }