http://git-wip-us.apache.org/repos/asf/phoenix/blob/5cdc938e/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java index e6fe7d3..690b15c 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java @@ -23,10 +23,12 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.SQLException; import java.util.Properties; import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT; @@ -94,12 +96,12 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT { stmt.setInt(2, 1); stmt.execute(); conn.commit(); - query = "UPSERT INTO target(pk, col) SELECT pk, col from source"; stmt = conn.prepareStatement(query); stmt.execute(); conn.commit(); - + analyzeTable(conn, "source"); + analyzeTable(conn, "target"); query = "SELECT * FROM target"; stmt = conn.prepareStatement(query); ResultSet rs = stmt.executeQuery(); @@ -111,6 +113,11 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT { conn.close(); } } + + private void analyzeTable(Connection conn, String tableName) throws IOException, SQLException { + String query = "ANALYZE " + tableName; + conn.createStatement().execute(query); + } @Test public void testUpsertSaltedTableIntoSaltedTable() throws Exception { @@ -188,12 +195,12 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT { Connection conn = DriverManager.getConnection(getUrl(), props); conn.setAutoCommit(false); try { - String ddl = "CREATE TABLE IF NOT EXISTS source" + + String ddl = "CREATE TABLE IF NOT EXISTS source1" + " (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT NULL, col1 INTEGER" + " CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SALT_BUCKETS=4"; createTestTable(getUrl(), ddl); - String query = "UPSERT INTO source(pk1, pk2, pk3, col1) VALUES(?,?,?,?)"; + String query = "UPSERT INTO source1(pk1, pk2, pk3, col1) VALUES(?,?,?,?)"; PreparedStatement stmt = conn.prepareStatement(query); stmt.setString(1, "1"); stmt.setString(2, "2"); @@ -203,12 +210,12 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT { conn.commit(); conn.setAutoCommit(true); - query = "UPSERT INTO source(pk3, col1, pk1) SELECT pk3+1, col1+1, pk2 from source"; + query = "UPSERT INTO source1(pk3, col1, pk1) SELECT pk3+1, col1+1, pk2 from source1"; stmt = conn.prepareStatement(query); stmt.execute(); conn.commit(); - - query = "SELECT col1 FROM source"; + analyzeTable(conn, "source1"); + query = "SELECT col1 FROM source1"; stmt = conn.prepareStatement(query); ResultSet rs = stmt.executeQuery(); assertTrue(rs.next());
http://git-wip-us.apache.org/repos/asf/phoenix/blob/5cdc938e/phoenix-core/src/main/antlr3/PhoenixSQL.g ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/antlr3/PhoenixSQL.g b/phoenix-core/src/main/antlr3/PhoenixSQL.g index 556cd21..42b8a98 100644 --- a/phoenix-core/src/main/antlr3/PhoenixSQL.g +++ b/phoenix-core/src/main/antlr3/PhoenixSQL.g @@ -1,6 +1,4 @@ /** - * Copyright 2010 The Apache Software Foundation - * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -105,12 +103,12 @@ tokens MAXVALUE='maxvalue'; CYCLE='cycle'; CASCADE='cascade'; + ANALYZE='analyze'; } @parser::header { /** - * Copyright 2010 The Apache Software Foundation * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -358,6 +356,7 @@ non_select_node returns [BindableStatement ret] | s=alter_table_node | s=create_sequence_node | s=drop_sequence_node + | s=update_statistics_node | s=explain_node) { contextStack.pop(); $ret = s; } ; @@ -494,6 +493,11 @@ alter_table_node returns [AlterTableStatement ret] { PTableType tt = v==null ? (QueryConstants.SYSTEM_SCHEMA_NAME.equals(t.getSchemaName()) ? PTableType.SYSTEM : PTableType.TABLE) : PTableType.VIEW; ret = ( c == null ? factory.addColumn(factory.namedTable(null,t), tt, d, ex!=null, p) : factory.dropColumn(factory.namedTable(null,t), tt, c, ex!=null) ); } ; +update_statistics_node returns [UpdateStatisticsStatement ret] + : ANALYZE t=from_table_name + {ret = factory.updateStatistics(factory.namedTable(null, t));} + ; + prop_name returns [String ret] : p=identifier {$ret = SchemaUtil.normalizeIdentifier(p); } ; http://git-wip-us.apache.org/repos/asf/phoenix/blob/5cdc938e/phoenix-core/src/main/java/org/apache/phoenix/cache/GlobalCache.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/cache/GlobalCache.java b/phoenix-core/src/main/java/org/apache/phoenix/cache/GlobalCache.java index a36db0b..fcef0ec 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/cache/GlobalCache.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/cache/GlobalCache.java @@ -72,10 +72,13 @@ public class GlobalCache extends TenantCacheImpl { synchronized(this) { result = metaDataCache; if(result == null) { + long maxTTL = Math.min(config.getLong( + QueryServices.MAX_SERVER_METADATA_CACHE_TIME_TO_LIVE_MS_ATTRIB, + QueryServicesOptions.DEFAULT_MAX_SERVER_METADATA_CACHE_TIME_TO_LIVE_MS), config.getLong( + QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, + QueryServicesOptions.DEFAULT_STATS_UPDATE_FREQ_MS)); long maxSize = config.getLong(QueryServices.MAX_SERVER_METADATA_CACHE_SIZE_ATTRIB, QueryServicesOptions.DEFAULT_MAX_SERVER_METADATA_CACHE_SIZE); - long maxTTL = config.getLong(QueryServices.MAX_SERVER_METADATA_CACHE_TIME_TO_LIVE_MS_ATTRIB, - QueryServicesOptions.DEFAULT_MAX_SERVER_METADATA_CACHE_TIME_TO_LIVE_MS); metaDataCache = result = CacheBuilder.newBuilder() .maximumWeight(maxSize) .expireAfterAccess(maxTTL, TimeUnit.MILLISECONDS) http://git-wip-us.apache.org/repos/asf/phoenix/blob/5cdc938e/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 2efedb3..65232ea 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 @@ -60,10 +60,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.TreeMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellScanner; import org.apache.hadoop.hbase.Coprocessor; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.HConstants; @@ -71,6 +73,7 @@ import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.KeyValue.Type; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; +import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.HTablePool; import org.apache.hadoop.hbase.client.Mutation; @@ -95,6 +98,8 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.phoenix.cache.GlobalCache; import org.apache.phoenix.coprocessor.generated.MetaDataProtos; import org.apache.phoenix.coprocessor.generated.MetaDataProtos.AddColumnRequest; +import org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest; +import org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse; import org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheRequest; import org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheResponse; import org.apache.phoenix.coprocessor.generated.MetaDataProtos.CreateTableRequest; @@ -128,8 +133,12 @@ import org.apache.phoenix.schema.PTable.LinkType; import org.apache.phoenix.schema.PTable.ViewType; import org.apache.phoenix.schema.PTableImpl; import org.apache.phoenix.schema.PTableType; +import org.apache.phoenix.schema.PhoenixArray; import org.apache.phoenix.schema.SortOrder; import org.apache.phoenix.schema.TableNotFoundException; +import org.apache.phoenix.schema.stat.PTableStats; +import org.apache.phoenix.schema.stat.PTableStatsImpl; +import org.apache.phoenix.schema.stat.StatisticsUtils; import org.apache.phoenix.schema.tuple.ResultTuple; import org.apache.phoenix.trace.util.Tracing; import org.apache.phoenix.util.ByteUtil; @@ -143,6 +152,7 @@ import org.slf4j.LoggerFactory; import com.google.common.cache.Cache; import com.google.common.collect.Lists; +import com.google.protobuf.ByteString; import com.google.protobuf.RpcCallback; import com.google.protobuf.RpcController; import com.google.protobuf.Service; @@ -162,6 +172,7 @@ import com.google.protobuf.Service; * * @since 0.1 */ +@SuppressWarnings("deprecation") public class MetaDataEndpointImpl extends MetaDataProtocol implements CoprocessorService, Coprocessor { private static final Logger logger = LoggerFactory.getLogger(MetaDataEndpointImpl.class); @@ -276,7 +287,7 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso } private RegionCoprocessorEnvironment env; - + private static final Log LOG = LogFactory.getLog(MetaDataEndpointImpl.class); /** @@ -296,7 +307,6 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso } else { throw new CoprocessorException("Must be loaded on a table region!"); } - LOG.info("Starting Tracing-Metrics Systems"); // Start the phoenix trace collection Tracing.addTraceMetricsSource(); @@ -454,7 +464,6 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso indexes.add(indexTable); } - @SuppressWarnings("deprecation") private void addColumnToTable(List<Cell> results, PName colName, PName famName, Cell[] colKeyValues, List<PColumn> columns, boolean isSalted) { int i = 0; @@ -668,11 +677,89 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso addColumnToTable(results, colName, famName, colKeyValues, columns, saltBucketNum != null); } } - + PName physicalTableName = physicalTables.isEmpty() ? PNameFactory.newName(SchemaUtil.getTableName( + schemaName.getString(), tableName.getString())) : physicalTables.get(0); + PTableStats stats = updateStatsInternal(physicalTableName.getBytes(), columns); return PTableImpl.makePTable(tenantId, schemaName, tableName, tableType, indexState, timeStamp, tableSeqNum, pkName, saltBucketNum, columns, tableType == INDEX ? dataTableName : null, indexes, isImmutableRows, physicalTables, defaultFamilyName, viewStatement, disableWAL, - multiTenant, viewType, viewIndexId, indexType); + multiTenant, viewType, viewIndexId, indexType, stats); + } + + private PTableStats updateStatsInternal(byte[] tableNameBytes, List<PColumn> columns) + throws IOException { + List<PName> family = Lists.newArrayListWithExpectedSize(columns.size()); + for (PColumn column : columns) { + PName familyName = column.getFamilyName(); + if (familyName != null) { + family.add(familyName); + } + } + HTable statsHTable = null; + try { + // Can we do a new HTable instance here? Or get it from a pool or cache of these instances? + statsHTable = new HTable(this.env.getConfiguration(), + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME_BYTES); + Scan s = new Scan(); + if (tableNameBytes != null) { + // Check for an efficient way here + s.setStartRow(tableNameBytes); + s.setStopRow(ByteUtil.nextKey(tableNameBytes)); + } + ResultScanner scanner = statsHTable.getScanner(s); + Result result = null; + byte[] fam = null; + List<byte[]> guidePosts = Lists.newArrayListWithExpectedSize(columns.size()); + TreeMap<byte[], List<byte[]>> guidePostsPerCf = new TreeMap<byte[], List<byte[]>>(Bytes.BYTES_COMPARATOR); + while ((result = scanner.next()) != null) { + CellScanner cellScanner = result.cellScanner(); + while (cellScanner.advance()) { + Cell current = cellScanner.current(); + // For now collect only guide posts + if (Bytes.equals(current.getQualifierArray(), current.getQualifierOffset(), + current.getQualifierLength(), PhoenixDatabaseMetaData.GUIDE_POSTS_BYTES, 0, + PhoenixDatabaseMetaData.GUIDE_POSTS_BYTES.length)) { + byte[] cfInCell = StatisticsUtils.getCFFromRowKey(tableNameBytes, current.getRowArray(), + current.getRowOffset(), current.getRowLength()); + if (fam == null) { + fam = cfInCell; + } else if (!Bytes.equals(fam, cfInCell)) { + // Sort all the guide posts + guidePostsPerCf.put(cfInCell, guidePosts); + guidePosts = new ArrayList<byte[]>(); + fam = cfInCell; + } + byte[] guidePostVal = new ImmutableBytesPtr(current.getValueArray(), current.getValueOffset(), current + .getValueLength()).copyBytesIfNecessary(); + PhoenixArray array = (PhoenixArray)PDataType.VARBINARY_ARRAY.toObject(guidePostVal); + if (array != null && array.getDimensions() != 0) { + for (int j = 0; j < array.getDimensions(); j++) { + byte[] gp = array.toBytes(j); + if (gp.length != 0) { + guidePosts.add(gp); + } + } + } + } + } + } + if(fam != null) { + // Sort all the guideposts + guidePostsPerCf.put(fam, guidePosts); + } + return new PTableStatsImpl(guidePostsPerCf); + } catch (Exception e) { + if (e instanceof org.apache.hadoop.hbase.TableNotFoundException) { + logger.warn("Stats table not yet online", e); + } else { + throw new IOException(e); + } + } finally { + if (statsHTable != null) { + statsHTable.close(); + } + } + return PTableStatsImpl.NO_STATS; } private PTable buildDeletedTable(byte[] key, ImmutableBytesPtr cacheKey, HRegion region, @@ -866,7 +953,6 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso * Looks for whether child views exist for the table specified by table. * TODO: should we pass a timestamp here? */ - @SuppressWarnings("deprecation") private TableViewFinderResult findChildViews(HRegion region, byte[] tenantId, PTable table) throws IOException { byte[] schemaName = table.getSchemaName().getBytes(); byte[] tableName = table.getTableName().getBytes(); @@ -1464,7 +1550,6 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso done.run(builder.build()); } - @SuppressWarnings("deprecation") @Override public void updateIndexState(RpcController controller, UpdateIndexStateRequest request, RpcCallback<MetaDataResponse> done) { @@ -1672,4 +1757,37 @@ public class MetaDataEndpointImpl extends MetaDataProtocol implements Coprocesso } } + @Override + public void clearCacheForTable(RpcController controller, ClearCacheForTableRequest request, + RpcCallback<ClearCacheForTableResponse> done) { + ByteString tenantId = request.getTenantId(); + ByteString schemaName = request.getSchemaName(); + ByteString tableName = request.getTableName(); + byte[] tableKey = SchemaUtil.getTableKey(tenantId.toByteArray(), schemaName.toByteArray(), + tableName.toByteArray()); + ImmutableBytesPtr key = new ImmutableBytesPtr(tableKey); + try { + PTable table = doGetTable(tableKey, request.getClientTimestamp()); + if (table != null) { + Cache<ImmutableBytesPtr, PTable> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); + // Add +1 to the ts + // TODO : refactor doGetTable() to do this - optionally increment the timestamp + // TODO : clear metadata if it is spread across multiple region servers + long ts = table.getTimeStamp() + 1; + // Here we could add an empty puti + HRegion region = env.getRegion(); + List<Mutation> mutations = new ArrayList<Mutation>(); + Put p = new Put(tableKey); + p.add(TABLE_FAMILY_BYTES, QueryConstants.EMPTY_COLUMN_BYTES, ts, ByteUtil.EMPTY_BYTE_ARRAY); + mutations.add(p); + region.mutateRowsWithLocks(mutations, Collections.<byte[]> emptySet()); + metaDataCache.invalidate(key); + } + } catch (Throwable t) { + // We could still invalidate it + logger.error("clearCacheForTable failed to update the latest ts ", t); + ProtobufUtil.setControllerException(controller, ServerUtil.createIOException( + SchemaUtil.getTableName(schemaName.toString(), tableName.toString()), t)); + } + } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/5cdc938e/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/MetaDataProtos.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/MetaDataProtos.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/MetaDataProtos.java index 7877fc4..5ac9cb7 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/MetaDataProtos.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/MetaDataProtos.java @@ -6316,6 +6316,1089 @@ public final class MetaDataProtos { // @@protoc_insertion_point(class_scope:GetVersionResponse) } + public interface ClearCacheForTableRequestOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required bytes tenantId = 1; + /** + * <code>required bytes tenantId = 1;</code> + */ + boolean hasTenantId(); + /** + * <code>required bytes tenantId = 1;</code> + */ + com.google.protobuf.ByteString getTenantId(); + + // required bytes schemaName = 2; + /** + * <code>required bytes schemaName = 2;</code> + */ + boolean hasSchemaName(); + /** + * <code>required bytes schemaName = 2;</code> + */ + com.google.protobuf.ByteString getSchemaName(); + + // required bytes tableName = 3; + /** + * <code>required bytes tableName = 3;</code> + */ + boolean hasTableName(); + /** + * <code>required bytes tableName = 3;</code> + */ + com.google.protobuf.ByteString getTableName(); + + // required int64 clientTimestamp = 4; + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + boolean hasClientTimestamp(); + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + long getClientTimestamp(); + } + /** + * Protobuf type {@code ClearCacheForTableRequest} + */ + public static final class ClearCacheForTableRequest extends + com.google.protobuf.GeneratedMessage + implements ClearCacheForTableRequestOrBuilder { + // Use ClearCacheForTableRequest.newBuilder() to construct. + private ClearCacheForTableRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClearCacheForTableRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClearCacheForTableRequest defaultInstance; + public static ClearCacheForTableRequest getDefaultInstance() { + return defaultInstance; + } + + public ClearCacheForTableRequest getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClearCacheForTableRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + tenantId_ = input.readBytes(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + schemaName_ = input.readBytes(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + tableName_ = input.readBytes(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + clientTimestamp_ = input.readInt64(); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.class, org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.Builder.class); + } + + public static com.google.protobuf.Parser<ClearCacheForTableRequest> PARSER = + new com.google.protobuf.AbstractParser<ClearCacheForTableRequest>() { + public ClearCacheForTableRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ClearCacheForTableRequest(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser<ClearCacheForTableRequest> getParserForType() { + return PARSER; + } + + private int bitField0_; + // required bytes tenantId = 1; + public static final int TENANTID_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString tenantId_; + /** + * <code>required bytes tenantId = 1;</code> + */ + public boolean hasTenantId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>required bytes tenantId = 1;</code> + */ + public com.google.protobuf.ByteString getTenantId() { + return tenantId_; + } + + // required bytes schemaName = 2; + public static final int SCHEMANAME_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString schemaName_; + /** + * <code>required bytes schemaName = 2;</code> + */ + public boolean hasSchemaName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * <code>required bytes schemaName = 2;</code> + */ + public com.google.protobuf.ByteString getSchemaName() { + return schemaName_; + } + + // required bytes tableName = 3; + public static final int TABLENAME_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString tableName_; + /** + * <code>required bytes tableName = 3;</code> + */ + public boolean hasTableName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * <code>required bytes tableName = 3;</code> + */ + public com.google.protobuf.ByteString getTableName() { + return tableName_; + } + + // required int64 clientTimestamp = 4; + public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 4; + private long clientTimestamp_; + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public boolean hasClientTimestamp() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public long getClientTimestamp() { + return clientTimestamp_; + } + + private void initFields() { + tenantId_ = com.google.protobuf.ByteString.EMPTY; + schemaName_ = com.google.protobuf.ByteString.EMPTY; + tableName_ = com.google.protobuf.ByteString.EMPTY; + clientTimestamp_ = 0L; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasTenantId()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasSchemaName()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasTableName()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasClientTimestamp()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, tenantId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, schemaName_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, tableName_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt64(4, clientTimestamp_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, tenantId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, schemaName_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, tableName_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, clientTimestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest)) { + return super.equals(obj); + } + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest other = (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest) obj; + + boolean result = true; + result = result && (hasTenantId() == other.hasTenantId()); + if (hasTenantId()) { + result = result && getTenantId() + .equals(other.getTenantId()); + } + result = result && (hasSchemaName() == other.hasSchemaName()); + if (hasSchemaName()) { + result = result && getSchemaName() + .equals(other.getSchemaName()); + } + result = result && (hasTableName() == other.hasTableName()); + if (hasTableName()) { + result = result && getTableName() + .equals(other.getTableName()); + } + result = result && (hasClientTimestamp() == other.hasClientTimestamp()); + if (hasClientTimestamp()) { + result = result && (getClientTimestamp() + == other.getClientTimestamp()); + } + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + if (hasTenantId()) { + hash = (37 * hash) + TENANTID_FIELD_NUMBER; + hash = (53 * hash) + getTenantId().hashCode(); + } + if (hasSchemaName()) { + hash = (37 * hash) + SCHEMANAME_FIELD_NUMBER; + hash = (53 * hash) + getSchemaName().hashCode(); + } + if (hasTableName()) { + hash = (37 * hash) + TABLENAME_FIELD_NUMBER; + hash = (53 * hash) + getTableName().hashCode(); + } + if (hasClientTimestamp()) { + hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + hashLong(getClientTimestamp()); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ClearCacheForTableRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.class, org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.Builder.class); + } + + // Construct using org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + tenantId_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + schemaName_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + tableName_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + clientTimestamp_ = 0L; + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableRequest_descriptor; + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest getDefaultInstanceForType() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.getDefaultInstance(); + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest build() { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest buildPartial() { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest result = new org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.tenantId_ = tenantId_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.schemaName_ = schemaName_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.tableName_ = tableName_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.clientTimestamp_ = clientTimestamp_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest) { + return mergeFrom((org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest other) { + if (other == org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.getDefaultInstance()) return this; + if (other.hasTenantId()) { + setTenantId(other.getTenantId()); + } + if (other.hasSchemaName()) { + setSchemaName(other.getSchemaName()); + } + if (other.hasTableName()) { + setTableName(other.getTableName()); + } + if (other.hasClientTimestamp()) { + setClientTimestamp(other.getClientTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasTenantId()) { + + return false; + } + if (!hasSchemaName()) { + + return false; + } + if (!hasTableName()) { + + return false; + } + if (!hasClientTimestamp()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // required bytes tenantId = 1; + private com.google.protobuf.ByteString tenantId_ = com.google.protobuf.ByteString.EMPTY; + /** + * <code>required bytes tenantId = 1;</code> + */ + public boolean hasTenantId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>required bytes tenantId = 1;</code> + */ + public com.google.protobuf.ByteString getTenantId() { + return tenantId_; + } + /** + * <code>required bytes tenantId = 1;</code> + */ + public Builder setTenantId(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + tenantId_ = value; + onChanged(); + return this; + } + /** + * <code>required bytes tenantId = 1;</code> + */ + public Builder clearTenantId() { + bitField0_ = (bitField0_ & ~0x00000001); + tenantId_ = getDefaultInstance().getTenantId(); + onChanged(); + return this; + } + + // required bytes schemaName = 2; + private com.google.protobuf.ByteString schemaName_ = com.google.protobuf.ByteString.EMPTY; + /** + * <code>required bytes schemaName = 2;</code> + */ + public boolean hasSchemaName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * <code>required bytes schemaName = 2;</code> + */ + public com.google.protobuf.ByteString getSchemaName() { + return schemaName_; + } + /** + * <code>required bytes schemaName = 2;</code> + */ + public Builder setSchemaName(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + schemaName_ = value; + onChanged(); + return this; + } + /** + * <code>required bytes schemaName = 2;</code> + */ + public Builder clearSchemaName() { + bitField0_ = (bitField0_ & ~0x00000002); + schemaName_ = getDefaultInstance().getSchemaName(); + onChanged(); + return this; + } + + // required bytes tableName = 3; + private com.google.protobuf.ByteString tableName_ = com.google.protobuf.ByteString.EMPTY; + /** + * <code>required bytes tableName = 3;</code> + */ + public boolean hasTableName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * <code>required bytes tableName = 3;</code> + */ + public com.google.protobuf.ByteString getTableName() { + return tableName_; + } + /** + * <code>required bytes tableName = 3;</code> + */ + public Builder setTableName(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + tableName_ = value; + onChanged(); + return this; + } + /** + * <code>required bytes tableName = 3;</code> + */ + public Builder clearTableName() { + bitField0_ = (bitField0_ & ~0x00000004); + tableName_ = getDefaultInstance().getTableName(); + onChanged(); + return this; + } + + // required int64 clientTimestamp = 4; + private long clientTimestamp_ ; + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public boolean hasClientTimestamp() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public long getClientTimestamp() { + return clientTimestamp_; + } + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public Builder setClientTimestamp(long value) { + bitField0_ |= 0x00000008; + clientTimestamp_ = value; + onChanged(); + return this; + } + /** + * <code>required int64 clientTimestamp = 4;</code> + */ + public Builder clearClientTimestamp() { + bitField0_ = (bitField0_ & ~0x00000008); + clientTimestamp_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:ClearCacheForTableRequest) + } + + static { + defaultInstance = new ClearCacheForTableRequest(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:ClearCacheForTableRequest) + } + + public interface ClearCacheForTableResponseOrBuilder + extends com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code ClearCacheForTableResponse} + */ + public static final class ClearCacheForTableResponse extends + com.google.protobuf.GeneratedMessage + implements ClearCacheForTableResponseOrBuilder { + // Use ClearCacheForTableResponse.newBuilder() to construct. + private ClearCacheForTableResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClearCacheForTableResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClearCacheForTableResponse defaultInstance; + public static ClearCacheForTableResponse getDefaultInstance() { + return defaultInstance; + } + + public ClearCacheForTableResponse getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClearCacheForTableResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.class, org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.Builder.class); + } + + public static com.google.protobuf.Parser<ClearCacheForTableResponse> PARSER = + new com.google.protobuf.AbstractParser<ClearCacheForTableResponse>() { + public ClearCacheForTableResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ClearCacheForTableResponse(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser<ClearCacheForTableResponse> getParserForType() { + return PARSER; + } + + private void initFields() { + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse)) { + return super.equals(obj); + } + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse other = (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse) obj; + + boolean result = true; + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ClearCacheForTableResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.class, org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.Builder.class); + } + + // Construct using org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.internal_static_ClearCacheForTableResponse_descriptor; + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse getDefaultInstanceForType() { + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance(); + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse build() { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse buildPartial() { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse result = new org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse(this); + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse) { + return mergeFrom((org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse other) { + if (other == org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + // @@protoc_insertion_point(builder_scope:ClearCacheForTableResponse) + } + + static { + defaultInstance = new ClearCacheForTableResponse(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:ClearCacheForTableResponse) + } + /** * Protobuf service {@code MetaDataService} */ @@ -6388,6 +7471,14 @@ public final class MetaDataProtos { org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest request, com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse> done); + /** + * <code>rpc clearCacheForTable(.ClearCacheForTableRequest) returns (.ClearCacheForTableResponse);</code> + */ + public abstract void clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request, + com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse> done); + } public static com.google.protobuf.Service newReflectiveService( @@ -6457,6 +7548,14 @@ public final class MetaDataProtos { impl.getVersion(controller, request, done); } + @java.lang.Override + public void clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request, + com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse> done) { + impl.clearCacheForTable(controller, request, done); + } + }; } @@ -6495,6 +7594,8 @@ public final class MetaDataProtos { return impl.clearCache(controller, (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheRequest)request); case 7: return impl.getVersion(controller, (org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest)request); + case 8: + return impl.clearCacheForTable(controller, (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest)request); default: throw new java.lang.AssertionError("Can't get here."); } @@ -6525,6 +7626,8 @@ public final class MetaDataProtos { return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheRequest.getDefaultInstance(); case 7: return org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest.getDefaultInstance(); + case 8: + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -6555,6 +7658,8 @@ public final class MetaDataProtos { return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheResponse.getDefaultInstance(); case 7: return org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse.getDefaultInstance(); + case 8: + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -6627,6 +7732,14 @@ public final class MetaDataProtos { org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest request, com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse> done); + /** + * <code>rpc clearCacheForTable(.ClearCacheForTableRequest) returns (.ClearCacheForTableResponse);</code> + */ + public abstract void clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request, + com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse> done); + public static final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptor() { @@ -6689,6 +7802,11 @@ public final class MetaDataProtos { com.google.protobuf.RpcUtil.<org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse>specializeCallback( done)); return; + case 8: + this.clearCacheForTable(controller, (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest)request, + com.google.protobuf.RpcUtil.<org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse>specializeCallback( + done)); + return; default: throw new java.lang.AssertionError("Can't get here."); } @@ -6719,6 +7837,8 @@ public final class MetaDataProtos { return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheRequest.getDefaultInstance(); case 7: return org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest.getDefaultInstance(); + case 8: + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -6749,6 +7869,8 @@ public final class MetaDataProtos { return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheResponse.getDefaultInstance(); case 7: return org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse.getDefaultInstance(); + case 8: + return org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -6889,6 +8011,21 @@ public final class MetaDataProtos { org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse.class, org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse.getDefaultInstance())); } + + public void clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request, + com.google.protobuf.RpcCallback<org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse> done) { + channel.callMethod( + getDescriptor().getMethods().get(8), + controller, + request, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.class, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance())); + } } public static BlockingInterface newBlockingStub( @@ -6936,6 +8073,11 @@ public final class MetaDataProtos { com.google.protobuf.RpcController controller, org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionRequest request) throws com.google.protobuf.ServiceException; + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request) + throws com.google.protobuf.ServiceException; } private static final class BlockingStub implements BlockingInterface { @@ -7040,6 +8182,18 @@ public final class MetaDataProtos { org.apache.phoenix.coprocessor.generated.MetaDataProtos.GetVersionResponse.getDefaultInstance()); } + + public org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse clearCacheForTable( + com.google.protobuf.RpcController controller, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableRequest request) + throws com.google.protobuf.ServiceException { + return (org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse) channel.callBlockingMethod( + getDescriptor().getMethods().get(8), + controller, + request, + org.apache.phoenix.coprocessor.generated.MetaDataProtos.ClearCacheForTableResponse.getDefaultInstance()); + } + } // @@protoc_insertion_point(class_scope:MetaDataService) @@ -7100,6 +8254,16 @@ public final class MetaDataProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_GetVersionResponse_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_ClearCacheForTableRequest_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_ClearCacheForTableRequest_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_ClearCacheForTableResponse_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_ClearCacheForTableResponse_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -7127,27 +8291,32 @@ public final class MetaDataProtos { "st\022\036\n\026tableMetadataMutations\030\001 \003(\014\"\023\n\021Cl" + "earCacheRequest\"\024\n\022ClearCacheResponse\"\023\n" + "\021GetVersionRequest\"%\n\022GetVersionResponse" + - "\022\017\n\007version\030\001 \002(\003*\212\002\n\014MutationCode\022\030\n\024TA" + - "BLE_ALREADY_EXISTS\020\000\022\023\n\017TABLE_NOT_FOUND\020", - "\001\022\024\n\020COLUMN_NOT_FOUND\020\002\022\031\n\025COLUMN_ALREAD" + - "Y_EXISTS\020\003\022\035\n\031CONCURRENT_TABLE_MUTATION\020" + - "\004\022\027\n\023TABLE_NOT_IN_REGION\020\005\022\025\n\021NEWER_TABL" + - "E_FOUND\020\006\022\034\n\030UNALLOWED_TABLE_MUTATION\020\007\022" + - "\021\n\rNO_PK_COLUMNS\020\010\022\032\n\026PARENT_TABLE_NOT_F" + - "OUND\020\t2\303\003\n\017MetaDataService\022/\n\010getTable\022\020" + - ".GetTableRequest\032\021.MetaDataResponse\0225\n\013c" + - "reateTable\022\023.CreateTableRequest\032\021.MetaDa" + - "taResponse\0221\n\tdropTable\022\021.DropTableReque" + - "st\032\021.MetaDataResponse\0221\n\taddColumn\022\021.Add", - "ColumnRequest\032\021.MetaDataResponse\0223\n\ndrop" + - "Column\022\022.DropColumnRequest\032\021.MetaDataRes" + - "ponse\022?\n\020updateIndexState\022\030.UpdateIndexS" + - "tateRequest\032\021.MetaDataResponse\0225\n\nclearC" + - "ache\022\022.ClearCacheRequest\032\023.ClearCacheRes" + - "ponse\0225\n\ngetVersion\022\022.GetVersionRequest\032" + - "\023.GetVersionResponseBB\n(org.apache.phoen" + - "ix.coprocessor.generatedB\016MetaDataProtos" + - "H\001\210\001\001\240\001\001" + "\022\017\n\007version\030\001 \002(\003\"m\n\031ClearCacheForTableR" + + "equest\022\020\n\010tenantId\030\001 \002(\014\022\022\n\nschemaName\030\002", + " \002(\014\022\021\n\ttableName\030\003 \002(\014\022\027\n\017clientTimesta" + + "mp\030\004 \002(\003\"\034\n\032ClearCacheForTableResponse*\212" + + "\002\n\014MutationCode\022\030\n\024TABLE_ALREADY_EXISTS\020" + + "\000\022\023\n\017TABLE_NOT_FOUND\020\001\022\024\n\020COLUMN_NOT_FOU" + + "ND\020\002\022\031\n\025COLUMN_ALREADY_EXISTS\020\003\022\035\n\031CONCU" + + "RRENT_TABLE_MUTATION\020\004\022\027\n\023TABLE_NOT_IN_R" + + "EGION\020\005\022\025\n\021NEWER_TABLE_FOUND\020\006\022\034\n\030UNALLO" + + "WED_TABLE_MUTATION\020\007\022\021\n\rNO_PK_COLUMNS\020\010\022" + + "\032\n\026PARENT_TABLE_NOT_FOUND\020\t2\222\004\n\017MetaData" + + "Service\022/\n\010getTable\022\020.GetTableRequest\032\021.", + "MetaDataResponse\0225\n\013createTable\022\023.Create" + + "TableRequest\032\021.MetaDataResponse\0221\n\tdropT" + + "able\022\021.DropTableRequest\032\021.MetaDataRespon" + + "se\0221\n\taddColumn\022\021.AddColumnRequest\032\021.Met" + + "aDataResponse\0223\n\ndropColumn\022\022.DropColumn" + + "Request\032\021.MetaDataResponse\022?\n\020updateInde" + + "xState\022\030.UpdateIndexStateRequest\032\021.MetaD" + + "ataResponse\0225\n\nclearCache\022\022.ClearCacheRe" + + "quest\032\023.ClearCacheResponse\0225\n\ngetVersion" + + "\022\022.GetVersionRequest\032\023.GetVersionRespons", + "e\022M\n\022clearCacheForTable\022\032.ClearCacheForT" + + "ableRequest\032\033.ClearCacheForTableResponse" + + "BB\n(org.apache.phoenix.coprocessor.gener" + + "atedB\016MetaDataProtosH\001\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -7220,6 +8389,18 @@ public final class MetaDataProtos { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_GetVersionResponse_descriptor, new java.lang.String[] { "Version", }); + internal_static_ClearCacheForTableRequest_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_ClearCacheForTableRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_ClearCacheForTableRequest_descriptor, + new java.lang.String[] { "TenantId", "SchemaName", "TableName", "ClientTimestamp", }); + internal_static_ClearCacheForTableResponse_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_ClearCacheForTableResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_ClearCacheForTableResponse_descriptor, + new java.lang.String[] { }); return null; } };
