Projects >> h-store >>062208d784da2772ddbbc6d2a458ec40b7f0bd56

Chunk
Conflicting content
package edu.brown.catalog;

import java.io.File;
<<<<<<< HEAD
import java.util.*;
=======
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25

import org.apache.commons.collections15.CollectionUtils;
import org.apache.commons.collections15.map.ListOrderedMap;
Solution content
package edu.brown.catalog;

import java.io.File;
import java.util.*;

import org.apache.commons.collections15.CollectionUtils;
import org.apache.commons.collections15.map.ListOrderedMap;
File
CatalogUtil.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
import org.json.JSONObject;
import org.voltdb.VoltTable;
import org.voltdb.VoltType;
<<<<<<< HEAD
import org.voltdb.catalog.*;
=======
import org.voltdb.catalog.Catalog;
import org.voltdb.catalog.CatalogMap;
import org.voltdb.catalog.CatalogType;
import org.voltdb.catalog.Cluster;
import org.voltdb.catalog.Column;
import org.voltdb.catalog.ColumnRef;
import org.voltdb.catalog.ConstantValue;
import org.voltdb.catalog.Constraint;
import org.voltdb.catalog.ConstraintRef;
import org.voltdb.catalog.Database;
import org.voltdb.catalog.Host;
import org.voltdb.catalog.Index;
import org.voltdb.catalog.MaterializedViewInfo;
import org.voltdb.catalog.Partition;
import org.voltdb.catalog.PlanFragment;
import org.voltdb.catalog.ProcParameter;
import org.voltdb.catalog.Procedure;
import org.voltdb.catalog.Site;
import org.voltdb.catalog.Statement;
import org.voltdb.catalog.StmtParameter;
import org.voltdb.catalog.Table;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import org.voltdb.expressions.AbstractExpression;
import org.voltdb.expressions.AbstractValueExpression;
import org.voltdb.expressions.ComparisonExpression;
Solution content
import org.json.JSONObject;
import org.voltdb.VoltTable;
import org.voltdb.VoltType;
import org.voltdb.catalog.*;
import org.voltdb.expressions.AbstractExpression;
import org.voltdb.expressions.AbstractValueExpression;
import org.voltdb.expressions.ComparisonExpression;
File
CatalogUtil.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
import org.voltdb.expressions.TupleValueExpression;
import org.voltdb.planner.PlanColumn;
import org.voltdb.planner.PlannerContext;
<<<<<<< HEAD
import org.voltdb.plannodes.*;
=======
import org.voltdb.plannodes.AbstractJoinPlanNode;
import org.voltdb.plannodes.AbstractOperationPlanNode;
import org.voltdb.plannodes.AbstractPlanNode;
import org.voltdb.plannodes.AbstractScanPlanNode;
import org.voltdb.plannodes.IndexScanPlanNode;
import org.voltdb.plannodes.InsertPlanNode;
import org.voltdb.plannodes.MaterializePlanNode;
import org.voltdb.plannodes.OrderByPlanNode;
import org.voltdb.plannodes.ProjectionPlanNode;
import org.voltdb.plannodes.SeqScanPlanNode;
import org.voltdb.plannodes.UpdatePlanNode;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import org.voltdb.types.ConstraintType;
import org.voltdb.types.ExpressionType;
import org.voltdb.types.PlanNodeType;
Solution content
import org.voltdb.expressions.TupleValueExpression;
import org.voltdb.planner.PlanColumn;
import org.voltdb.planner.PlannerContext;
import org.voltdb.plannodes.*;
import org.voltdb.types.ConstraintType;
import org.voltdb.types.ExpressionType;
import org.voltdb.types.PlanNodeType;
File
CatalogUtil.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
import org.voltdb.catalog.Host;
import org.voltdb.catalog.Partition;
import org.voltdb.catalog.Site;
<<<<<<< HEAD
import org.voltdb.messaging.FastSerializer;
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import org.voltdb.utils.Pair;

import ca.evanjones.protorpc.NIOEventLoop;
Solution content
import org.voltdb.catalog.Host;
import org.voltdb.catalog.Partition;
import org.voltdb.catalog.Site;
import org.voltdb.messaging.FastSerializer;
import org.voltdb.utils.Pair;

import ca.evanjones.protorpc.NIOEventLoop;
File
HStoreCoordinator.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
import com.google.protobuf.RpcController;

import edu.brown.catalog.CatalogUtil;
<<<<<<< HEAD
import edu.brown.hstore.*;
import edu.brown.hstore.Hstore.HStoreService;
import edu.brown.hstore.Hstore.SendDataRequest;
import edu.brown.hstore.Hstore.SendDataResponse;
import edu.brown.hstore.Hstore.ShutdownRequest;
import edu.brown.hstore.Hstore.ShutdownResponse;
import edu.brown.hstore.Hstore.Status;
import edu.brown.hstore.Hstore.TransactionFinishRequest;
import edu.brown.hstore.Hstore.TransactionFinishResponse;
import edu.brown.hstore.Hstore.TransactionInitRequest;
import edu.brown.hstore.Hstore.TransactionInitResponse;
import edu.brown.hstore.Hstore.TransactionMapRequest;
import edu.brown.hstore.Hstore.TransactionMapResponse;
import edu.brown.hstore.Hstore.TransactionPrepareRequest;
import edu.brown.hstore.Hstore.TransactionPrepareResponse;
import edu.brown.hstore.Hstore.TransactionRedirectRequest;
import edu.brown.hstore.Hstore.TransactionRedirectResponse;
import edu.brown.hstore.Hstore.TransactionReduceRequest;
import edu.brown.hstore.Hstore.TransactionReduceResponse;
import edu.brown.hstore.Hstore.TransactionWorkRequest;
import edu.brown.hstore.Hstore.TransactionWorkResponse;
=======
import edu.brown.hstore.Hstore;
import edu.brown.hstore.Hstore.*;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import edu.brown.logging.LoggerUtil;
import edu.brown.logging.LoggerUtil.LoggerBoolean;
import edu.brown.utils.EventObservable;
Solution content
import com.google.protobuf.RpcController;

import edu.brown.catalog.CatalogUtil;
import edu.brown.hstore.*;
import edu.brown.hstore.Hstore;
import edu.brown.hstore.Hstore.*;
import edu.brown.logging.LoggerUtil;
import edu.brown.logging.LoggerUtil.LoggerBoolean;
import edu.brown.utils.EventObservable;
File
HStoreCoordinator.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
import edu.mit.hstore.callbacks.TransactionPrepareCallback;
import edu.mit.hstore.callbacks.TransactionRedirectResponseCallback;
import edu.mit.hstore.dtxn.LocalTransaction;
<<<<<<< HEAD
import edu.mit.hstore.handlers.SendDataHandler;
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import edu.mit.hstore.handlers.TransactionFinishHandler;
import edu.mit.hstore.handlers.TransactionInitHandler;
import edu.mit.hstore.handlers.TransactionMapHandler;
Solution content
import edu.mit.hstore.callbacks.TransactionPrepareCallback;
import edu.mit.hstore.callbacks.TransactionRedirectResponseCallback;
import edu.mit.hstore.dtxn.LocalTransaction;
import edu.mit.hstore.handlers.SendDataHandler;
import edu.mit.hstore.handlers.TransactionFinishHandler;
import edu.mit.hstore.handlers.TransactionInitHandler;
import edu.mit.hstore.handlers.TransactionMapHandler;
File
HStoreCoordinator.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
    
    private Shutdownable.ShutdownState state = ShutdownState.INITIALIZED;
    
<<<<<<< HEAD
    
=======
    private final EventObservable ready_observable = new EventObservable();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25

    /**
     * 
Solution content
    
    private Shutdownable.ShutdownState state = ShutdownState.INITIALIZED;
    
    private final EventObservable ready_observable = new EventObservable();

    /**
     * 
File
HStoreCoordinator.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
        }
        
=======
            }
        }
        
<<<<<<< HEAD
        if (mapreduce) {
            ((MapReduceTransaction)ts).init(txn_id, request.getClientHandle(), base_partition,
                    predict_touchedPartitions, predict_readOnly, predict_abortable,
                    t_state, catalog_proc, request, done);
        } else {
            ts.init(txn_id, request.getClientHandle(), base_partition,
                    predict_touchedPartitions, predict_readOnly, predict_abortable,
                    t_state, catalog_proc, request, done);
        ts.init(txn_id, request.getClientHandle(), base_partition,
                        predict_touchedPartitions, predict_readOnly, predict_abortable,
                        catalog_proc, request, done);
        if (t_state != null) ts.setEstimatorState(t_state);
//        ClientResponseImpl cresponse = new ClientResponseImpl(txn_id, request.getClientHandle(), Hstore.Status.OK, HStoreConstants.EMPTY_RESULT, "");
//        this.sendClientResponse(ts, cresponse);
//        if (true) return;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        
        if (hstore_conf.site.txn_profiling) ts.profiler.startTransaction(timestamp);
        if (d) {
Solution content
            }
        }
        
        if (mapreduce) {
            ((MapReduceTransaction)ts).init(
                    txn_id, request.getClientHandle(), base_partition,
                    predict_touchedPartitions, predict_readOnly, predict_abortable,
                    catalog_proc, request, done);
        } else {
            ts.init(
                    txn_id, request.getClientHandle(), base_partition,
                    predict_touchedPartitions, predict_readOnly, predict_abortable,
                    catalog_proc, request, done);
        }
        if (t_state != null) ts.setEstimatorState(t_state);
        
        if (hstore_conf.site.txn_profiling) ts.profiler.startTransaction(timestamp);
        if (d) {
File
HStoreSite.java
Developer's decision
Manual
Kind of conflict
Comment
If statement
Method invocation
Chunk
Conflicting content
        }
    }
    
<<<<<<< HEAD
    public MapReduceTransaction createMapReduceTransaction(long txn_id, StoredProcedureInvocation invocation, int base_partition) {
        String proc_name = invocation.getProcName();
        Procedure catalog_proc = catalog_db.getProcedures().getIgnoreCase(proc_name);
        if (catalog_proc == null) throw new RuntimeException("Unknown procedure '" + proc_name + "'");
        
        MapReduceTransaction ts = null;
        try {
            ts = HStoreObjectPools.STATES_TXN_MAPREDUCE.borrowObject();
            assert(ts.isInitialized() == false);
        } catch (Throwable ex) {
            LOG.fatal("__FILE__:__LINE__ " + String.format("Failed to instantiate new MapReduceTransaction state for %s txn #%s",
                                    proc_name, txn_id));
            throw new RuntimeException(ex);
        }
        // We should never already have a transaction handle for this txnId
        AbstractTransaction dupe = this.inflight_txns.put(txn_id, ts);
        assert(dupe == null) : "Trying to create multiple transaction handles for " + dupe;

        ts.init(txn_id, base_partition, catalog_proc, invocation);
        LOG.info("__FILE__:__LINE__ " + String.format("Created new MapReduceTransaction state %s from remote partition %d",
                                                      ts, base_partition));
        return (ts);
    }
    
    public RemoteTransaction createRemoteTransaction(long txn_id, FragmentTaskMessage ftask) {
=======
    public RemoteTransaction createRemoteTransaction(long txn_id, TransactionWorkRequest request) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        RemoteTransaction ts = null;
        try {
            // Remote Transaction
Solution content
        }
    }
    
    public MapReduceTransaction createMapReduceTransaction(long txn_id, StoredProcedureInvocation invocation, int base_partition) {
        String proc_name = invocation.getProcName();
        Procedure catalog_proc = catalog_db.getProcedures().getIgnoreCase(proc_name);
        if (catalog_proc == null) throw new RuntimeException("Unknown procedure '" + proc_name + "'");
        
        MapReduceTransaction ts = null;
        try {
            ts = HStoreObjectPools.STATES_TXN_MAPREDUCE.borrowObject();
            assert(ts.isInitialized() == false);
        } catch (Throwable ex) {
            LOG.fatal("__FILE__:__LINE__ " + String.format("Failed to instantiate new MapReduceTransaction state for %s txn #%s",
                                    proc_name, txn_id));
            throw new RuntimeException(ex);
        }
        // We should never already have a transaction handle for this txnId
        AbstractTransaction dupe = this.inflight_txns.put(txn_id, ts);
        assert(dupe == null) : "Trying to create multiple transaction handles for " + dupe;

        ts.init(txn_id, base_partition, catalog_proc, invocation);
        LOG.info("__FILE__:__LINE__ " + String.format("Created new MapReduceTransaction state %s from remote partition %d",
                                                      ts, base_partition));
        return (ts);
    }
    
    public RemoteTransaction createRemoteTransaction(long txn_id, TransactionWorkRequest request) {
        RemoteTransaction ts = null;
        try {
            // Remote Transaction
File
HStoreSite.java
Developer's decision
Combination
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
        try {
            // Remote Transaction
            ts = HStoreObjectPools.STATES_TXN_REMOTE.borrowObject();
<<<<<<< HEAD
            ts.init(txn_id, ftask.getClientHandle(), ftask.getSourcePartitionId(), ftask.isReadOnly(), true);
            if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Creating new RemoteTransaction state %s from remote partition %d to execute at partition %d [readOnly=%s, singlePartitioned=%s, hashCode=%d]",
                                           ts, ftask.getSourcePartitionId(), ftask.getDestinationPartitionId(), ftask.isReadOnly(), false, ts.hashCode()));
=======
            ts.init(txn_id, request.getSourcePartition(), request.getSysproc(), true);
            if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Creating new RemoteTransactionState %s from remote partition %d [singlePartitioned=%s, hashCode=%d]",
                                           ts, request.getSourcePartition(), false, ts.hashCode()));
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } catch (Exception ex) {
            LOG.fatal("__FILE__:__LINE__ " + "Failed to construct TransactionState for txn #" + txn_id, ex);
            throw new RuntimeException(ex);
Solution content
        try {
            // Remote Transaction
            ts = HStoreObjectPools.STATES_TXN_REMOTE.borrowObject();
            ts.init(txn_id, request.getSourcePartition(), request.getSysproc(), true);
            if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Creating new RemoteTransactionState %s from remote partition %d [singlePartitioned=%s, hashCode=%d]",
                                           ts, request.getSourcePartition(), false, ts.hashCode()));
        } catch (Exception ex) {
            LOG.fatal("__FILE__:__LINE__ " + "Failed to construct TransactionState for txn #" + txn_id, ex);
            throw new RuntimeException(ex);
File
HStoreSite.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
            LOG.fatal("__FILE__:__LINE__ " + "Failed to construct TransactionState for txn #" + txn_id, ex);
            throw new RuntimeException(ex);
        }
<<<<<<< HEAD
        AbstractTransaction dupe = this.inflight_txns.put(txn_id, ts);
        assert(dupe == null) : "Trying to create multiple transaction handles for " + dupe;
        
        if (t) LOG.trace("__FILE__:__LINE__ " + String.format("Stored new transaction state for %s at partition %d", ts, ftask.getDestinationPartitionId()));
=======
        this.inflight_txns.put(txn_id, ts);
        if (t) LOG.trace("__FILE__:__LINE__ " + String.format("Stored new transaction state for %s", ts));
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return (ts);
    }
    
Solution content
            LOG.fatal("__FILE__:__LINE__ " + "Failed to construct TransactionState for txn #" + txn_id, ex);
            throw new RuntimeException(ex);
        }
        AbstractTransaction dupe = this.inflight_txns.put(txn_id, ts);
        assert(dupe == null) : "Trying to create multiple transaction handles for " + dupe;
        
        if (t) LOG.trace("__FILE__:__LINE__ " + String.format("Stored new transaction state for %s", ts));
        return (ts);
    }
    
File
HStoreSite.java
Developer's decision
Combination
Kind of conflict
Assert statement
If statement
Method invocation
Variable
Chunk
Conflicting content
        if (this.isAborted() == false) {
            if (debug.get())
                LOG.debug(ts + " is ready to execute. Passing to HStoreSite");
<<<<<<< HEAD
            
            hstore_site.transactionStart(ts, ts.getBasePartition());
=======
            if (hstore_site.getHStoreConf().site.txn_profiling) ts.profiler.stopCoordinatorBlocked();
            hstore_site.transactionStart(ts);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } else {
            assert(this.finish_callback != null);
            this.finish_callback.allowTransactionCleanup();
Solution content
        if (this.isAborted() == false) {
            if (debug.get())
                LOG.debug(ts + " is ready to execute. Passing to HStoreSite");
            if (hstore_site.getHStoreConf().site.txn_profiling) ts.profiler.stopCoordinatorBlocked();
            hstore_site.transactionStart(ts, ts.getBasePartition());
        } else {
            assert(this.finish_callback != null);
            this.finish_callback.allowTransactionCleanup();
File
TransactionInitCallback.java
Developer's decision
Combination
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
import org.apache.commons.collections15.map.ListOrderedMap;
import org.apache.log4j.Logger;
<<<<<<< HEAD
import org.voltdb.VoltTable;
import org.voltdb.VoltTableRow;
=======
import org.voltdb.ParameterSet;
import org.voltdb.VoltTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
import org.voltdb.catalog.Procedure;
import org.voltdb.exceptions.SerializableException;
import org.voltdb.messaging.FinishTaskMessage;
Solution content
import org.apache.commons.collections15.map.ListOrderedMap;
import org.apache.log4j.Logger;
import org.voltdb.VoltTable;
import org.voltdb.VoltTableRow;
import org.voltdb.ParameterSet;
import org.voltdb.catalog.Procedure;
import org.voltdb.exceptions.SerializableException;
import org.voltdb.messaging.FinishTaskMessage;
File
AbstractTransaction.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
    }

    // ----------------------------------------------------------------------------
<<<<<<< HEAD
    // IMPLEMENTING CLASS METHODS
    // ----------------------------------------------------------------------------

    /**
     * Initialize this TransactionState
     * @param txnId
     * @param clientHandle
     * @param source_partition
     * @param predict_singlePartitioned TODO
     * @param predict_readOnly TODO
     * @param predict_abortable TODO
     */
    public abstract  T init(long txnId, long clientHandle, int source_partition, boolean predict_readOnly, boolean predict_abortable);
    
    // ----------------------------------------------------------------------------
    // DATA STORAGE
    // ----------------------------------------------------------------------------
    
    /*
     * Store data from mapOutput tables to reduceInput table
     * reduceInput table should merge all incoming data from the mapOutput tables.
     */
    public Hstore.Status storeData(int partition, VoltTable vt) {
        assert(false) : "Unimplemented!";
        
        return (Hstore.Status.OK);
    }
    
    // ----------------------------------------------------------------------------
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    // ROUND METHODS
    // ----------------------------------------------------------------------------
    
Solution content
    }

    // ----------------------------------------------------------------------------
    // DATA STORAGE
    // ----------------------------------------------------------------------------
    
    /*
     * Store data from mapOutput tables to reduceInput table
     * reduceInput table should merge all incoming data from the mapOutput tables.
     */
    public Hstore.Status storeData(int partition, VoltTable vt) {
        assert(false) : "Unimplemented!";
        
        return (Hstore.Status.OK);
    }
    
    // ----------------------------------------------------------------------------
    // ROUND METHODS
    // ----------------------------------------------------------------------------
    
File
AbstractTransaction.java
Developer's decision
Combination
Kind of conflict
Comment
Method declaration
Method interface
Chunk
Conflicting content
    /**
     * The queued up ClientResponse that we need to send back for this txn
     */
<<<<<<< HEAD
    public boolean sysproc;
    
=======
    private ClientResponseImpl cresponse;


>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    /**
     * Whether this txn is being executed specutatively
     */
Solution content
    /**
     * The queued up ClientResponse that we need to send back for this txn
     */
    private ClientResponseImpl cresponse;
    

    /**
     * Whether this txn is being executed specutatively
     */
File
LocalTransaction.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
     * The original StoredProcedureInvocation request that was sent to the HStoreSite
     * XXX: Why do we need to keep this?
     */
<<<<<<< HEAD
    protected StoredProcedureInvocation invocation;
=======
    private StoredProcedureInvocation invocation;
    
    private final InitiateTaskMessage itask;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25

    /**
     * The set of partitions that we expected this partition to touch.
Solution content
     * The original StoredProcedureInvocation request that was sent to the HStoreSite
     * XXX: Why do we need to keep this?
     */
    protected StoredProcedureInvocation invocation;
    
    private final InitiateTaskMessage itask;

    /**
     * The set of partitions that we expected this partition to touch.
File
LocalTransaction.java
Developer's decision
Combination
Kind of conflict
Attribute
Chunk
Conflicting content
        this.rpc_transactionFinish = new ProtoRpcController[num_sites];
    }

<<<<<<< HEAD
    @SuppressWarnings("unchecked")
    public LocalTransaction init(long txnId, long clientHandle, int base_partition,
                                       boolean predict_readOnly, boolean predict_canAbort) {
        assert(this.predict_touchedPartitions != null);
        super.init(txnId, clientHandle, base_partition,
                (this.predict_touchedPartitions.size() == 1), predict_readOnly, predict_canAbort, true);
        
        if (this.predict_singlePartition == false) {
            try {
                this.init_callback = HStoreObjectPools.CALLBACKS_TXN_INIT.borrowObject(); 
                this.init_callback.init(this);
                
                this.prepare_callback = HStoreObjectPools.CALLBACKS_TXN_PREPARE.borrowObject();
                this.prepare_callback.init(this);
                
                // Don't initialize this until later, because we need to know 
                // what the final status of the txn
                this.finish_callback = HStoreObjectPools.CALLBACKS_TXN_FINISH.borrowObject();
                
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
        }
        return (this);
    }

=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    /**
     * Main initialization method for LocalTransaction
     * @param txnId
Solution content
        this.rpc_transactionFinish = new ProtoRpcController[num_sites];
    }

    /**
     * Main initialization method for LocalTransaction
     * @param txnId
File
LocalTransaction.java
Developer's decision
Version 2
Kind of conflict
Annotation
Method declaration
Chunk
Conflicting content
        
        this.predict_touchedPartitions = predict_touchedPartitions;
        this.catalog_proc = catalog_proc;
<<<<<<< HEAD
        this.sysproc = catalog_proc.getSystemproc();
              
        this.invocation = invocation;
        this.client_callback = client_callback;
        
        return this.init(txnId, clientHandle, base_partition, predict_readOnly, predict_canAbort);
    }
    
    /**
     * Initialization that copies information from the mispredicted original TransactionState 
     * @param txnId
     * @param base_partition
     * @param orig
     * @return
     */
    public LocalTransaction init(long txnId, int base_partition, LocalTransaction orig,
                                 Collection predict_touchedPartitions, boolean predict_readOnly, boolean predict_abortable) {
        this.predict_touchedPartitions = predict_touchedPartitions;
        this.orig_txn_id = orig.getTransactionId();
        this.catalog_proc = orig.catalog_proc;
        this.sysproc = orig.sysproc;

        this.invocation = orig.invocation;
        this.client_callback = orig.client_callback;
        // this.estimator_state = orig.estimator_state;
=======
        this.invocation = invocation;
        this.client_callback = client_callback;
        
        super.init(txnId, clientHandle, base_partition, catalog_proc.getSystemproc(),
                  (this.predict_touchedPartitions.size() == 1), predict_readOnly, predict_canAbort, true);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        
        // Initialize the InitialTaskMessage
        // We have to wrap the StoredProcedureInvocation object into an
Solution content
        
        this.predict_touchedPartitions = predict_touchedPartitions;
        this.catalog_proc = catalog_proc;
              
        this.invocation = invocation;
        this.client_callback = client_callback;
        
        super.init(txnId, clientHandle, base_partition, catalog_proc.getSystemproc(),
                  (this.predict_touchedPartitions.size() == 1), predict_readOnly, predict_canAbort, true);
        
        // Initialize the InitialTaskMessage
        // We have to wrap the StoredProcedureInvocation object into an
File
LocalTransaction.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
        this.state = null;
        this.orig_txn_id = null;
        this.catalog_proc = null;
<<<<<<< HEAD
        this.sysproc = false;
        
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        this.exec_speculative = false;
        this.predict_touchedPartitions = null;
        this.done_partitions.clear();
Solution content
        this.state = null;
        this.orig_txn_id = null;
        this.catalog_proc = null;
        
        this.exec_speculative = false;
        this.predict_touchedPartitions = null;
        this.done_partitions.clear();
File
LocalTransaction.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
    // ACCESS METHODS
    // ----------------------------------------------------------------------------
    
<<<<<<< HEAD
    public boolean isMapReduce() {
    	return (this.catalog_proc.getMapreduce());
=======
    public void setClientResponse(ClientResponseImpl cresponse) {
        assert(this.cresponse == null);
        this.cresponse = cresponse;
    }
    public ClientResponseImpl getClientResponse() {
        assert(this.cresponse != null);
        return (this.cresponse);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    public void setBatchSize(int batchSize) {
Solution content
    // ACCESS METHODS
    // ----------------------------------------------------------------------------
    
    public boolean isMapReduce() {
    	return (this.catalog_proc.getMapreduce());
    }
    
    public void setClientResponse(ClientResponseImpl cresponse) {
        assert(this.cresponse == null);
        this.cresponse = cresponse;
    }
    public ClientResponseImpl getClientResponse() {
        assert(this.cresponse != null);
        return (this.cresponse);
    }
    
    public void setBatchSize(int batchSize) {
File
LocalTransaction.java
Developer's decision
Concatenation
Kind of conflict
Assert statement
Attribute
Method declaration
Method invocation
Method signature
Return statement
Chunk
Conflicting content
        // Basic Info
        m = super.getDebugMap();
        m.put("Procedure", this.getProcedureName());
<<<<<<< HEAD
        m.put("SysProc", this.sysproc);
        
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        maps.add(m);
        
        // Predictions
Solution content
        // Basic Info
        m = super.getDebugMap();
        m.put("Procedure", this.getProcedureName());
        
        maps.add(m);
        
        // Predictions
File
LocalTransaction.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Chunk
Conflicting content
        this.plan = new BatchPlan(this.maxRoundSize);
        this.enable_profiling = hstore_conf.site.planner_profiling;
        this.enable_caching = hstore_conf.site.planner_caching; 
<<<<<<< HEAD
        this.force_singlePartition = forceSinglePartition;
=======
        this.enable_unique_ids = hstore_conf.site.planner_unique_dependency_ids;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        
        this.sorted_singlep_fragments = (List[])new List[this.batchSize];
        this.sorted_multip_fragments = (List[])new List[this.batchSize];
Solution content
        this.plan = new BatchPlan(this.maxRoundSize);
        this.enable_profiling = hstore_conf.site.planner_profiling;
        this.enable_caching = hstore_conf.site.planner_caching; 
        this.force_singlePartition = forceSinglePartition;
        this.enable_unique_ids = hstore_conf.site.planner_unique_dependency_ids;
        
        this.sorted_singlep_fragments = (List[])new List[this.batchSize];
        this.sorted_multip_fragments = (List[])new List[this.batchSize];
File
BatchPlanner.java
Developer's decision
Concatenation
Kind of conflict
Attribute
Variable
Chunk
Conflicting content
//            this.hsql = null;
//            this.ee = null;
        }
<<<<<<< HEAD
=======
        
        // Initialize temporary data structures
        for (Site catalog_site : CatalogUtil.getAllSites(this.catalog)) {
            if (catalog_site.getId() != this.siteId) {
                tmp_transactionRequestBuildersParameters.put(catalog_site.getId(), new HashSet());
            }
            tmp_transactionRequestBuilderInputs.put(catalog_site.getId(), new HashSet());
        } // FOR
        
        this.initializeVoltProcedures();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    @SuppressWarnings("unchecked")
Solution content
//            this.hsql = null;
//            this.ee = null;
        }

        // Initialize temporary data structures
        for (Site catalog_site : CatalogUtil.getAllSites(this.catalog)) {
            if (catalog_site.getId() != this.siteId) {
                tmp_transactionRequestBuildersParameters.put(catalog_site.getId(), new HashSet());
            }
            tmp_transactionRequestBuilderInputs.put(catalog_site.getId(), new HashSet());
        } // FOR
    }
    
    @SuppressWarnings("unchecked")
File
ExecutionSite.java
Developer's decision
Combination
Kind of conflict
Comment
For statement
Method invocation
Chunk
Conflicting content
                                           ts, status, this.partitionId, this.currentTxnId,
                                           this.work_throttler.isThrottled(), this.work_throttler.size()));
            if (singlePartitioned == false) {
<<<<<<< HEAD
                TransactionFinishCallback finish_callback = ts.initTransactionFinishCallback(Hstore.Status.ABORT_THROTTLED);
                hstore_coordinator.transactionFinish(ts, Hstore.Status.ABORT_THROTTLED, finish_callback);
=======
                TransactionFinishCallback finish_callback = ts.getTransactionFinishCallback(Hstore.Status.ABORT_THROTTLED);
                hstore_coordinator.transactionFinish(ts, status, finish_callback);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
            }
            hstore_site.transactionReject(ts, status);
        }
Solution content
                                           ts, status, this.partitionId, this.currentTxnId,
                                           this.work_throttler.isThrottled(), this.work_throttler.size()));
            if (singlePartitioned == false) {
                TransactionFinishCallback finish_callback = ts.initTransactionFinishCallback(Hstore.Status.ABORT_THROTTLED);
                hstore_coordinator.transactionFinish(ts, status, finish_callback);
            }
            hstore_site.transactionReject(ts, status);
        }
File
ExecutionSite.java
Developer's decision
Combination
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
                }
                if(d) LOG.debug(" undoToken == HStoreConstants.DISABLE_UNDO_LOGGING_TOKEN");
            } else {
<<<<<<< HEAD
//                synchronized (this.ee) {
                    if (commit) {
                        if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Committing %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                       ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                        if(d) LOG.debug(" this.ee.releaseUndoToken(undoToken)");
                        this.ee.releaseUndoToken(undoToken);
        
                    // Evan says that txns will be aborted LIFO. This means the first txn that
                    // we get in abortWork() will have a the greatest undoToken, which means that 
                    // it will automagically rollback all other outstanding txns.
                    // I'm lazy/tired, so for now I'll just rollback everything I get, but in theory
                    // we should be able to check whether our undoToken has already been rolled back
                    } else {
                        if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Aborting %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                       ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                        this.ee.undoUndoToken(undoToken);
                    }
//                } // SYNCH
=======
                if (commit) {
                    if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Committing %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                   ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                    this.ee.releaseUndoToken(undoToken);
    
                // Evan says that txns will be aborted LIFO. This means the first txn that
                // we get in abortWork() will have a the greatest undoToken, which means that 
                // it will automagically rollback all other outstanding txns.
                // I'm lazy/tired, so for now I'll just rollback everything I get, but in theory
                // we should be able to check whether our undoToken has already been rolled back
                } else {
                    if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Aborting %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                   ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                    this.ee.undoUndoToken(undoToken);
                }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
            }
        }
        
Solution content
                }
                if(d) LOG.debug(" undoToken == HStoreConstants.DISABLE_UNDO_LOGGING_TOKEN");
            } else {
                if (commit) {
                    if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Committing %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                   ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                    this.ee.releaseUndoToken(undoToken);
    
                // Evan says that txns will be aborted LIFO. This means the first txn that
                // we get in abortWork() will have a the greatest undoToken, which means that 
                // it will automagically rollback all other outstanding txns.
                // I'm lazy/tired, so for now I'll just rollback everything I get, but in theory
                // we should be able to check whether our undoToken has already been rolled back
                } else {
                    if (d) LOG.debug("__FILE__:__LINE__ " + String.format("Aborting %s at partition=%d [lastTxnId=%d, undoToken=%d, submittedEE=%s]",
                                                   ts, this.partitionId, this.lastCommittedTxnId, undoToken, ts.hasSubmittedEE(this.partitionId)));
                    this.ee.undoUndoToken(undoToken);
                }
            }
        }
        
File
ExecutionSite.java
Developer's decision
Version 2
Kind of conflict
Comment
If statement
Chunk
Conflicting content
        }

        // Execute the queries and return the VoltTable results
<<<<<<< HEAD
        VoltTable[] retval = this.executeQueriesInABatch(batchQueryStmtIndex, batchQueryStmts, batchQueryArgs, isFinalSQL, forceSinglePartition);
=======
        last_batchQueryStmtIndex = batchQueryStmtIndex;
        VoltTable[] retval = this.executeQueriesInABatch(batchQueryStmtIndex, batchQueryStmts, batchQueryArgs, isFinalSQL);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25

        // Workload Trace - Stop Query
        if (this.enable_tracing && m_workloadXactHandle != null) {
Solution content
        }

        // Execute the queries and return the VoltTable results
        last_batchQueryStmtIndex = batchQueryStmtIndex;
        VoltTable[] retval = this.executeQueriesInABatch(batchQueryStmtIndex, batchQueryStmts, batchQueryArgs, isFinalSQL, forceSinglePartition);

        // Workload Trace - Stop Query
        if (this.enable_tracing && m_workloadXactHandle != null) {
File
VoltProcedure.java
Developer's decision
Combination
Kind of conflict
Attribute
Method invocation
Variable
Chunk
Conflicting content
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
<<<<<<< HEAD
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
=======
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return defaultInstance;
    }
    
Solution content
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Return statement
Chunk
Conflicting content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    
    private void initFields() {
    }
Solution content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Return statement
Chunk
Conflicting content
    private void initFields() {
    }
    public final boolean isInitialized() {
<<<<<<< HEAD
      if (!hasPartitionId) return false;
      if (!hasData) return false;
=======
      if (!hasId) return false;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return true;
    }
    
Solution content
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Chunk
Conflicting content
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
<<<<<<< HEAD
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
=======
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      getUnknownFields().writeTo(output);
    }
Solution content
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
For statement
If statement
Method invocation
Chunk
Conflicting content
      if (size != -1) return size;
    
      size = 0;
<<<<<<< HEAD
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
=======
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
Solution content
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
For statement
If statement
Method invocation
Variable
Chunk
Conflicting content
      return size;
    }
    
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
Solution content
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
=======
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
Solution content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
=======
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
<<<<<<< HEAD
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
=======
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
Solution content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
=======
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      private Builder() {}
      
      private static Builder create() {
Solution content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
      
      private static Builder create() {
        Builder builder = new Builder();
<<<<<<< HEAD
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
=======
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return result;
      }
      
Solution content
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
<<<<<<< HEAD
        result = new edu.brown.hstore.Hstore.PartitionFragment();
=======
        result = new edu.brown.hstore.Hstore.Dependency();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return this;
      }
      
Solution content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
=======
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      
      public boolean isInitialized() {
Solution content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Method signature
Return statement
Chunk
Conflicting content
      public boolean isInitialized() {
        return result.isInitialized();
      }
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.PartitionFragment build() {
=======
      public edu.brown.hstore.Hstore.Dependency build() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
Solution content
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
=======
      private edu.brown.hstore.Hstore.Dependency buildParsed()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
Solution content
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
      }
      
<<<<<<< HEAD
        return buildPartial();
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
=======
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
Solution content
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
<<<<<<< HEAD
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
=======
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        result = null;
        return returnMe;
      }
Solution content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
If statement
Variable
Chunk
Conflicting content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
<<<<<<< HEAD
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
=======
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } else {
          super.mergeFrom(other);
          return this;
Solution content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Return statement
Chunk
Conflicting content
        }
      }
      
<<<<<<< HEAD
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
=======
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
Solution content
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Method signature
Chunk
Conflicting content
              break;
            }
            case 8: {
<<<<<<< HEAD
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
=======
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
              break;
            }
          }
Solution content
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Break statement
Case statement
Method invocation
Chunk
Conflicting content
      }
      
      }
      
      
<<<<<<< HEAD
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
=======
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
Solution content
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Static initializer
Chunk
Conflicting content
      initFields();
    }
      defaultInstance.initFields();
    }
    
<<<<<<< HEAD
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
=======
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return defaultInstance;
    }
    
Solution content
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Return statement
Chunk
Conflicting content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    // required int32 partition_id = 1;
Solution content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Return statement
Chunk
Conflicting content
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
<<<<<<< HEAD
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
=======
    // optional bool mapreduce = 3 [default = false];
    public static final int MAPREDUCE_FIELD_NUMBER = 3;
    private boolean hasMapreduce;
    private boolean mapreduce_ = false;
    public boolean hasMapreduce() { return hasMapreduce; }
    public boolean getMapreduce() { return mapreduce_; }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    
    private void initFields() {
    }
Solution content
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method declaration
Chunk
Conflicting content
    private void initFields() {
    }
    public final boolean isInitialized() {
<<<<<<< HEAD
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
=======
      if (!hasTransactionId) return false;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return true;
    }
    
Solution content
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
If statement
Chunk
Conflicting content
      if (hasData()) {
        output.writeBytes(2, getData());
      }
<<<<<<< HEAD
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
=======
      if (hasMapreduce()) {
        output.writeBool(3, getMapreduce());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      getUnknownFields().writeTo(output);
    }
Solution content
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
<<<<<<< HEAD
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
=======
      if (hasMapreduce()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, getMapreduce());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
Solution content
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Variable
Chunk
Conflicting content
      return size;
    }
    
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
Solution content
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
<<<<<<< HEAD
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
Solution content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
=======
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
<<<<<<< HEAD
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
=======
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
Solution content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
=======
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      private Builder() {}
      
      private static Builder create() {
Solution content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
      
      private static Builder create() {
        Builder builder = new Builder();
<<<<<<< HEAD
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
=======
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return result;
      }
      
Solution content
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
<<<<<<< HEAD
        result = new edu.brown.hstore.Hstore.PartitionResult();
=======
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return this;
      }
      
Solution content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
=======
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      
      public boolean isInitialized() {
Solution content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Method signature
Return statement
Chunk
Conflicting content
      public boolean isInitialized() {
        return result.isInitialized();
      }
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.PartitionResult build() {
=======
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
Solution content
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
=======
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
Solution content
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
=======
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
Solution content
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
<<<<<<< HEAD
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
=======
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        result = null;
        return returnMe;
      }
Solution content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
If statement
Variable
Chunk
Conflicting content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
<<<<<<< HEAD
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
=======
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } else {
          super.mergeFrom(other);
          return this;
Solution content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Return statement
Chunk
Conflicting content
        }
      }
      
<<<<<<< HEAD
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
=======
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        if (other.hasData()) {
          setData(other.getData());
Solution content
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Method signature
Chunk
Conflicting content
        if (other.hasData()) {
          setData(other.getData());
        }
<<<<<<< HEAD
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
=======
        if (other.hasMapreduce()) {
          setMapreduce(other.getMapreduce());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
Solution content
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
              break;
            }
            case 24: {
<<<<<<< HEAD
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
=======
              setMapreduce(input.readBool());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
              break;
            }
          }
Solution content
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Break statement
Case statement
If statement
Method invocation
Variable
Chunk
Conflicting content
        return this;
      }
      
        return this;
      }
      
<<<<<<< HEAD
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
=======
      // optional bool mapreduce = 3 [default = false];
      public boolean hasMapreduce() {
        return result.hasMapreduce();
      }
      public boolean getMapreduce() {
        return result.getMapreduce();
      }
      public Builder setMapreduce(boolean value) {
        result.hasMapreduce = true;
        result.mapreduce_ = value;
        return this;
      }
      public Builder clearMapreduce() {
        result.hasMapreduce = false;
        result.mapreduce_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
Solution content
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Static initializer
Chunk
Conflicting content
      defaultInstance.initFields();
    }
    
<<<<<<< HEAD
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
=======
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return defaultInstance;
    }
    
Solution content
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Return statement
Chunk
Conflicting content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    // required int64 transaction_id = 1;
Solution content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Return statement
Chunk
Conflicting content
    }
    private int partitionsMemoizedSerializedSize = -1;
    
<<<<<<< HEAD
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
=======
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return true;
    }
    
Solution content
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Comment
If statement
Method declaration
Method signature
Chunk
Conflicting content
      }
      
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
<<<<<<< HEAD
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
=======
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
Solution content
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Comment
For statement
If statement
Method declaration
Method invocation
Method signature
Chunk
Conflicting content
          }
          result.partitions_.addAll(other.partitions_);
        }
<<<<<<< HEAD
=======
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
Solution content
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
If statement
Chunk
Conflicting content
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
<<<<<<< HEAD
              }
              input.popLimit(limit);
=======
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
              break;
            }
          }
Solution content
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Break statement
Case statement
If statement
Method invocation
Variable
Chunk
Conflicting content
            }
          }
        }
<<<<<<< HEAD
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
=======
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
Solution content
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
    }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      }
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
          return this;
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
        public Builder clear() {
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
          }
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    }
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
            case 8: {
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        } else {
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
      }
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
        return result;
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      }
            default: {
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
    
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
      return size;
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
        } else {
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method invocation
Method signature
Return statement
Static initializer
Chunk
Conflicting content
        if (value == null) {
          throw new NullPointerException();
        }
<<<<<<< HEAD
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
=======
        result.hasStatus = true;
        result.status_ = value;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return this;
      }
      public Builder clearStatus() {
Solution content
          return result.getOutput(index);
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: edu/brown/hstore/hstore.proto

package edu.brown.hstore;

public final class Hstore {
  private Hstore() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    OK(0, 0),
    ABORT_USER(1, 1),
    ABORT_GRACEFUL(2, 2),
    ABORT_UNEXPECTED(3, 3),
    ABORT_CONNECTION_LOST(4, 4),
    ABORT_MISPREDICT(5, 5),
    ABORT_RESTART(6, 6),
    ABORT_REJECT(7, 7),
    ABORT_THROTTLED(8, 8),
    ;
    
    
    public final int getNumber() { return value; }
    
    public static Status valueOf(int value) {
      switch (value) {
        case 0: return OK;
        case 1: return ABORT_USER;
        case 2: return ABORT_GRACEFUL;
        case 3: return ABORT_UNEXPECTED;
        case 4: return ABORT_CONNECTION_LOST;
        case 5: return ABORT_MISPREDICT;
        case 6: return ABORT_RESTART;
        case 7: return ABORT_REJECT;
        case 8: return ABORT_THROTTLED;
        default: return null;
      }
    }
    
    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public Status findValueByNumber(int number) {
              return Status.valueOf(number)
    ;        }
          };
    
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getEnumTypes().get(0);
    }
    
    private static final Status[] VALUES = {
      OK, ABORT_USER, ABORT_GRACEFUL, ABORT_UNEXPECTED, ABORT_CONNECTION_LOST, ABORT_MISPREDICT, ABORT_RESTART, ABORT_REJECT, ABORT_THROTTLED, 
    };
    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    private final int index;
    private final int value;
    private Status(int index, int value) {
      this.index = index;
      this.value = value;
    }
    
    static {
      edu.brown.hstore.Hstore.getDescriptor();
    }
    
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
        }
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
      }
        }
        partitionsMemoizedSerializedSize = dataSize;
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
          result.partitions_ =
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
    }
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
      }
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
        }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
      }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
            }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
        }
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
          throw newUninitializedMessageException(
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Method invocation
Variable
Chunk
Conflicting content
        return this;
      }
      
<<<<<<< HEAD
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
=======
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
Solution content
        public Builder clone() {
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
      
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      }
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
      }
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
        return this;
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
              int rawValue = input.readEnum();
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
            }
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      }
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      }
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
      
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
      }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
      }
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
        output.writeInt32(3, getSenderId());
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
        
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        default:
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
      }
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
        this.channel = channel;
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Comment
Method declaration
Method invocation
Method signature
Return statement
Chunk
Conflicting content
        result = null;
      }
        result.rejectPartition_ = value;
        return this;
      }
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
      
        return returnMe;
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
=======
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
Solution content
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
File
Hstore.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
<<<<<<< HEAD
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
=======
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return defaultInstance;
      }
      
Solution content
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
=======
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Return statement
Chunk
Conflicting content
        return ids_;
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // required bytes work = 2;
      public static final int WORK_FIELD_NUMBER = 2;
      private boolean hasWork;
      private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasWork() { return hasWork; }
      public com.google.protobuf.ByteString getWork() { return work_; }
      
      // optional bool last_fragment = 3 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 3;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
=======
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      
      private void initFields() {
      }
Solution content
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Return statement
Chunk
Conflicting content
      private void initFields() {
      }
      public final boolean isInitialized() {
<<<<<<< HEAD
        if (!hasPartitionId) return false;
        if (!hasWork) return false;
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return true;
      }
      
Solution content
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Chunk
Conflicting content
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
<<<<<<< HEAD
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (hasWork()) {
          output.writeBytes(2, getWork());
        }
        if (hasLastFragment()) {
          output.writeBool(3, getLastFragment());
=======
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        getUnknownFields().writeTo(output);
      }
Solution content
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
For statement
If statement
Method invocation
Chunk
Conflicting content
        if (size != -1) return size;
      
        size = 0;
<<<<<<< HEAD
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        if (hasWork()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getWork());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, getLastFragment());
=======
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
Solution content
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
For statement
If statement
Method invocation
Variable
Chunk
Conflicting content
        return size;
      }
      
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
Solution content
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
Solution content
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
Solution content
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          return null;
        }
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
Solution content
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          return null;
        }
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
Solution content
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
<<<<<<< HEAD
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
=======
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
Solution content
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
<<<<<<< HEAD
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
=======
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
Solution content
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
<<<<<<< HEAD
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
=======
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        private Builder() {}
        
        private static Builder create() {
Solution content
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
        
        private static Builder create() {
          Builder builder = new Builder();
<<<<<<< HEAD
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
=======
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          return result;
        }
        
Solution content
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
<<<<<<< HEAD
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
=======
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          return this;
        }
        
Solution content
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
<<<<<<< HEAD
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
=======
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        
        public boolean isInitialized() {
Solution content
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Method signature
Return statement
Chunk
Conflicting content
        public boolean isInitialized() {
          return result.isInitialized();
        }
<<<<<<< HEAD
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
=======
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
Solution content
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          return buildPartial();
        }
        
<<<<<<< HEAD
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
=======
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
Solution content
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          return buildPartial();
        }
        
<<<<<<< HEAD
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
=======
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
Solution content
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
<<<<<<< HEAD
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
=======
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          result = null;
          return returnMe;
        }
Solution content
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
If statement
Variable
Chunk
Conflicting content
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
<<<<<<< HEAD
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
=======
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          } else {
            super.mergeFrom(other);
            return this;
Solution content
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Return statement
Chunk
Conflicting content
          if (other.hasLastFragment()) {
          }
        }
        
<<<<<<< HEAD
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (other.hasWork()) {
            setWork(other.getWork());
          }
            setLastFragment(other.getLastFragment());
=======
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
Solution content
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Method signature
Chunk
Conflicting content
                break;
              }
              case 8: {
<<<<<<< HEAD
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                setWork(input.readBytes());
                break;
              }
              case 24: {
                setLastFragment(input.readBool());
=======
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
                break;
              }
            }
Solution content
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Break statement
Case statement
Method invocation
Variable
While statement
Chunk
Conflicting content
    }
              break;
            }
            case 26: {
            case 16: {
    
    static {
          result.ids_.set(index, value);
          return this;
        }
<<<<<<< HEAD
        
        // required bytes work = 2;
        return this;
        public boolean hasWork() {
      }
          return result.hasWork();
        }
      }
        throws java.io.IOException {
    private long transactionId_ = 0L;
        }
      }
        public com.google.protobuf.ByteString getWork() {
          return result.getWork();
        }
        public Builder setWork(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
          result.work_ = value;
          return this;
        }
        public Builder clearWork() {
          result.hasWork = false;
          result.work_ = getDefaultInstance().getWork();
          return this;
        }
        
        // optional bool last_fragment = 3 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // repeated int32 done_partition = 3 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 3;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(26);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              addDonePartition(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 3 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // required bytes output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private boolean hasOutput;
      private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasOutput() { return hasOutput; }
      public com.google.protobuf.ByteString getOutput() { return output_; }
      
      // optional bool error = 3 [default = false];
      public static final int ERROR_FIELD_NUMBER = 3;
      private boolean hasError;
      private boolean error_ = false;
      public boolean hasError() { return hasError; }
      public boolean getError() { return error_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasOutput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (hasOutput()) {
          output.writeBytes(2, getOutput());
        }
        if (hasError()) {
          output.writeBool(3, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        if (hasOutput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getOutput());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
        
      
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (other.hasOutput()) {
            setOutput(other.getOutput());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                setOutput(input.readBytes());
                break;
              }
              case 24: {
                setError(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // required bytes output = 2;
        public boolean hasOutput() {
          return result.hasOutput();
        }
        public com.google.protobuf.ByteString getOutput() {
          return result.getOutput();
        }
        public Builder setOutput(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
          result.output_ = value;
          return this;
        }
        public Builder clearOutput() {
          result.hasOutput = false;
          result.output_ = getDefaultInstance().getOutput();
          return this;
        }
        // optional bool error = 3 [default = false];
        public boolean hasError() {
          return result.hasError();
        }
        public boolean getError() {
          return result.getError();
        }
        public Builder setError(boolean value) {
          result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
    
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        result.hasTransactionId = true;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      size = 0;
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      
        }
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
    }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                break;
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
      
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
              }
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
        return create().mergeFrom(result);
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
      return true;
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
            }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
=======
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    }
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          }
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
                setLastFragment(input.readBool());
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
    
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
      {
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
      }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
      }
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
              while (input.getBytesUntilLimit() > 0) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
        
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
              break;
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
            }
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
          }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
    }
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
        }
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
Solution content
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
        return result.getAttached(index);
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
      }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            default: {
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
      } else {
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
        return this;
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
      }
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
      
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
        }
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
      return defaultInstance;
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
    }
    
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
    
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
        }
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      public Builder clone() {
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
      }
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
          result.partitions_.addAll(other.partitions_);
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Class declaration
Class signature
Comment
If statement
Method declaration
Method invocation
Method signature
Static initializer
Chunk
Conflicting content
              break;
            }
          }
<<<<<<< HEAD
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
=======
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
Solution content
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
  public static final class ShutdownRequest extends
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
<<<<<<< HEAD
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
=======
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return defaultInstance;
    }
    
Solution content
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
          }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
      
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        }
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: edu/brown/hstore/hstore.proto

package edu.brown.hstore;

public final class Hstore {
  private Hstore() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    OK(0, 0),
    ABORT_USER(1, 1),
    ABORT_GRACEFUL(2, 2),
    ABORT_UNEXPECTED(3, 3),
    ABORT_CONNECTION_LOST(4, 4),
    ABORT_MISPREDICT(5, 5),
    ABORT_RESTART(6, 6),
    ABORT_REJECT(7, 7),
    ABORT_THROTTLED(8, 8),
    ;
    
    
    public final int getNumber() { return value; }
    
    public static Status valueOf(int value) {
      switch (value) {
        case 0: return OK;
        case 1: return ABORT_USER;
        case 2: return ABORT_GRACEFUL;
        case 3: return ABORT_UNEXPECTED;
        case 4: return ABORT_CONNECTION_LOST;
        case 5: return ABORT_MISPREDICT;
        case 6: return ABORT_RESTART;
        case 7: return ABORT_REJECT;
        case 8: return ABORT_THROTTLED;
        default: return null;
      }
    }
    
    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public Status findValueByNumber(int number) {
              return Status.valueOf(number)
    ;        }
          };
    
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getEnumTypes().get(0);
    }
    
    private static final Status[] VALUES = {
      OK, ABORT_USER, ABORT_GRACEFUL, ABORT_UNEXPECTED, ABORT_CONNECTION_LOST, ABORT_MISPREDICT, ABORT_RESTART, ABORT_REJECT, ABORT_THROTTLED, 
    };
    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    private final int index;
    private final int value;
    private Status(int index, int value) {
      this.index = index;
      this.value = value;
    }
    
    static {
      edu.brown.hstore.Hstore.getDescriptor();
    }
    
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
        } else {
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          return this;
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
        }
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
      
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
          throw new IllegalStateException(
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
    }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
      
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        result.transactionId_ = 0L;
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
      }
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
        }
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      }
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
      }
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
        }
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
        }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
            case 1:
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
      
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
  private static
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "yncResponse"
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Return statement
Chunk
Conflicting content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    // required int64 transaction_id = 1;
Solution content
      
    
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: edu/brown/hstore/hstore.proto

package edu.brown.hstore;

public final class Hstore {
  private Hstore() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    OK(0, 0),
    ABORT_USER(1, 1),
    ABORT_GRACEFUL(2, 2),
    ABORT_UNEXPECTED(3, 3),
    ABORT_CONNECTION_LOST(4, 4),
    ABORT_MISPREDICT(5, 5),
    ABORT_RESTART(6, 6),
    ABORT_REJECT(7, 7),
    ABORT_THROTTLED(8, 8),
    ;
    
    
    public final int getNumber() { return value; }
    
    public static Status valueOf(int value) {
      switch (value) {
        case 0: return OK;
        case 1: return ABORT_USER;
        case 2: return ABORT_GRACEFUL;
        case 3: return ABORT_UNEXPECTED;
        case 4: return ABORT_CONNECTION_LOST;
        case 5: return ABORT_MISPREDICT;
        case 6: return ABORT_RESTART;
        case 7: return ABORT_REJECT;
        case 8: return ABORT_THROTTLED;
        default: return null;
      }
    }
    
    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public Status findValueByNumber(int number) {
              return Status.valueOf(number)
    ;        }
          };
    
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getEnumTypes().get(0);
    }
    private static final Status[] VALUES = {
      OK, ABORT_USER, ABORT_GRACEFUL, ABORT_UNEXPECTED, ABORT_CONNECTION_LOST, ABORT_MISPREDICT, ABORT_RESTART, ABORT_REJECT, ABORT_THROTTLED, 
    };
    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    private final int index;
    private final int value;
    private Status(int index, int value) {
      this.index = index;
      this.value = value;
    }
    
    static {
      edu.brown.hstore.Hstore.getDescriptor();
    }
    
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
        } else {
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
        }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
              }
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          return this;
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
        } else {
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        if (hasPartitionId()) {
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
      
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
  
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
            case 16: {
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
      }
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        size += com.google.protobuf.CodedOutputStream
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
      }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public long getTransactionId() {
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
        return builder;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
    
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        size += com.google.protobuf.CodedOutputStream
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
            case 0:
        return this;
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    }
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      }
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
  public static final class ShutdownRequest extends
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          controller,
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Return statement
Chunk
Conflicting content
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
<<<<<<< HEAD
=======
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    private void initFields() {
    }
    public final boolean isInitialized() {
Solution content
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Method declaration
Chunk
Conflicting content
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
<<<<<<< HEAD
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
=======
      if (!hasExitStatus) return false;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return true;
    }
    
Solution content
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
For statement
If statement
Chunk
Conflicting content
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
<<<<<<< HEAD
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
=======
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      getUnknownFields().writeTo(output);
    }
Solution content
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
For statement
If statement
Method invocation
Chunk
Conflicting content
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
<<<<<<< HEAD
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
=======
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
Solution content
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
File
Hstore.java
Developer's decision
Manual
Kind of conflict
For statement
If statement
Method invocation
Variable
Chunk
Conflicting content
      return size;
    }
    
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
Solution content
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
Solution content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
<<<<<<< HEAD
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
=======
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
Solution content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
=======
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      private Builder() {}
      
      private static Builder create() {
Solution content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
      
      private static Builder create() {
        Builder builder = new Builder();
<<<<<<< HEAD
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
=======
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return result;
      }
      
Solution content
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
=======
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
<<<<<<< HEAD
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return this;
      }
      
Solution content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
=======
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      
      public boolean isInitialized() {
Solution content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Method signature
Return statement
Chunk
Conflicting content
      public boolean isInitialized() {
        return result.isInitialized();
      }
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.SendDataRequest build() {
=======
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
Solution content
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
=======
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
Solution content
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
=======
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
Solution content
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
<<<<<<< HEAD
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
=======
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        result = null;
        return returnMe;
      }
Solution content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
If statement
Variable
Chunk
Conflicting content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
<<<<<<< HEAD
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
=======
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } else {
          super.mergeFrom(other);
          return this;
Solution content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Return statement
Chunk
Conflicting content
        }
      }
      
<<<<<<< HEAD
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
=======
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
Solution content
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Method signature
Chunk
Conflicting content
            case 24: {
              setTransactionId(input.readInt64());
              break;
            }
<<<<<<< HEAD
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
              setSenderId(input.readInt32());
=======
            case 16: {
              setExitStatus(input.readInt32());
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
              break;
            }
          }
Solution content
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Break statement
Case statement
Method invocation
Variable
Chunk
Conflicting content
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
<<<<<<< HEAD
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
=======
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
Solution content
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
File
Hstore.java
Developer's decision
Combination
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Static initializer
Chunk
Conflicting content
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
      defaultInstance.initFields();
    }
    
<<<<<<< HEAD
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
=======
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return defaultInstance;
    }
    
Solution content
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Class signature
Comment
Method declaration
Method signature
Chunk
Conflicting content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
Solution content
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Return statement
Chunk
Conflicting content
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
<<<<<<< HEAD
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
=======
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    }
    
    // required int64 transaction_id = 1;
Solution content
      }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
        }
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
      initFields();
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
        
      };
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcController controller,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
      getDescriptor() {
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    return descriptor;
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  }
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Return statement
Chunk
Conflicting content
    }
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
<<<<<<< HEAD
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
Solution content
    
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    private void initFields() {
    }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Method declaration
Chunk
Conflicting content
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
<<<<<<< HEAD
      if (!hasStatus) return false;
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return true;
    }
    
Solution content
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Chunk
Conflicting content
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
<<<<<<< HEAD
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      getUnknownFields().writeTo(output);
    }
    
Solution content
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: edu/brown/hstore/hstore.proto

package edu.brown.hstore;

public final class Hstore {
  private Hstore() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    OK(0, 0),
    ABORT_USER(1, 1),
    ABORT_GRACEFUL(2, 2),
    ABORT_UNEXPECTED(3, 3),
    ABORT_CONNECTION_LOST(4, 4),
    ABORT_MISPREDICT(5, 5),
    ABORT_RESTART(6, 6),
    ABORT_REJECT(7, 7),
    ABORT_THROTTLED(8, 8),
    ;
    
    
    public final int getNumber() { return value; }
    
    public static Status valueOf(int value) {
      switch (value) {
        case 0: return OK;
        case 1: return ABORT_USER;
        case 2: return ABORT_GRACEFUL;
        case 3: return ABORT_UNEXPECTED;
        case 4: return ABORT_CONNECTION_LOST;
        case 5: return ABORT_MISPREDICT;
        case 6: return ABORT_RESTART;
        case 7: return ABORT_REJECT;
        case 8: return ABORT_THROTTLED;
        default: return null;
      }
    }
    
    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public Status findValueByNumber(int number) {
              return Status.valueOf(number)
    ;        }
          };
    
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getEnumTypes().get(0);
    }
    
    private static final Status[] VALUES = {
      OK, ABORT_USER, ABORT_GRACEFUL, ABORT_UNEXPECTED, ABORT_CONNECTION_LOST, ABORT_MISPREDICT, ABORT_RESTART, ABORT_REJECT, ABORT_THROTTLED, 
    };
    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    }
    private final int index;
    private final int value;
    private Status(int index, int value) {
      this.index = index;
      this.value = value;
    }
    
    static {
      edu.brown.hstore.Hstore.getDescriptor();
    }
    
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
          }
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
          }
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      }
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
      
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
        
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
      
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
      }
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
        return result.isInitialized();
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
      }
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
        }
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      return size;
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
    
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      }
      
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
            }
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
          }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
      }
      
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
    }
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
      }
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
File
Hstore.java
Developer's decision
Manual
Kind of conflict
If statement
Chunk
Conflicting content
      memoizedSerializedSize = size;
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
<<<<<<< HEAD
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      size += getUnknownFields().getSerializedSize();
      return size;
Solution content
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Chunk
Conflicting content
    }
    
      return size;
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
Solution content
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method declaration
Method signature
Chunk
Conflicting content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
Solution content
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return null;
      }
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
Solution content
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
<<<<<<< HEAD
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
=======
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
Solution content
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
<<<<<<< HEAD
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
=======
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
Solution content
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
=======
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      private Builder() {}
      
      private static Builder create() {
Solution content
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Chunk
Conflicting content
      
      private static Builder create() {
        Builder builder = new Builder();
<<<<<<< HEAD
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
=======
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return result;
      }
      
Solution content
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
      
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
<<<<<<< HEAD
        result = new edu.brown.hstore.Hstore.SendDataResponse();
=======
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        return this;
      }
Solution content
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
<<<<<<< HEAD
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
=======
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      }
      
      public boolean isInitialized() {
Solution content
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Method signature
Return statement
Chunk
Conflicting content
        }
      public boolean isInitialized() {
        return result.isInitialized();
      }
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.SendDataResponse build() {
=======
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
Solution content
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
=======
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
Solution content
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
        return buildPartial();
      }
      
<<<<<<< HEAD
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
=======
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
Solution content
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Method signature
Chunk
Conflicting content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
<<<<<<< HEAD
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
=======
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        result = null;
        return returnMe;
      }
Solution content
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
If statement
Variable
Chunk
Conflicting content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
<<<<<<< HEAD
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
=======
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        } else {
          super.mergeFrom(other);
          return this;
Solution content
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Return statement
Chunk
Conflicting content
        }
      }
      
<<<<<<< HEAD
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
=======
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
Solution content
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
If statement
Method signature
Chunk
Conflicting content
              addPartitions(input.readInt32());
              break;
            }
<<<<<<< HEAD
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          }
        }
      }
Solution content
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Break statement
Case statement
If statement
Method invocation
Variable
While statement
Chunk
Conflicting content
        return this;
      }
      
<<<<<<< HEAD
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
=======
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
Solution content
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Attribute
Comment
Method declaration
Method invocation
Static initializer
Chunk
Conflicting content
      defaultInstance.initFields();
    }
    
<<<<<<< HEAD
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
=======
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
  }
  
  public static final class TimeSyncRequest extends
Solution content
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
File
Hstore.java
Developer's decision
Version 2
Kind of conflict
Comment
Chunk
Conflicting content
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
<<<<<<< HEAD
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
=======
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
Solution content
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
File
Hstore.java
Developer's decision
Concatenation
Kind of conflict
Attribute
Chunk
Conflicting content
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
<<<<<<< HEAD
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes" +
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti",
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\362\001\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022M\n\tfragments\030\002 \003(\0132:.edu.brown.hstor" +
      "e.TransactionWorkRequest.PartitionFragme" +
      "nt\022\032\n\016done_partition\030\003 \003(\005B\002\020\001\032U\n\021Partit" +
      "ionFragment\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004wor" +
      "k\030\002 \002(\014\022\034\n\rlast_fragment\030\003 \001(\010:\005false\"\366\001" +
      "\n\027TransactionWorkResponse\022\026\n\016transaction",
      "_id\030\001 \002(\003\022J\n\007results\030\002 \003(\01329.edu.brown.h" +
      "store.TransactionWorkResponse.PartitionR" +
      "esult\022(\n\006status\030\003 \002(\0162\030.edu.brown.hstore" +
      ".Status\032M\n\017PartitionResult\022\024\n\014partition_" +
      "id\030\001 \002(\005\022\016\n\006output\030\002 \002(\014\022\024\n\005error\030\003 \001(\010:" +
      "\005false\"[\n\025TransactionMapRequest\022\026\n\016trans" +
      "action_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002(\005\022" +
      "\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMapRes" +
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow",
      "n.hstore.Status\"^\n\030TransactionReduceRequ" +
      "est\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_part" +
      "ition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031Tran" +
      "sactionReduceResponse\022\026\n\016transaction_id\030" +
      "\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hstor" +
      "e.PartitionResult\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"K\n\031TransactionPrepar" +
      "eRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart" +
      "itions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepareRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit",
      "ions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.bro" +
      "wn.hstore.Status\"t\n\030TransactionFinishReq" +
      "uest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartitio" +
      "ns\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brown" +
=======
      "l.proto\"&\n\nDependency\022\n\n\002id\030\001 \002(\005\022\014\n\004dat" +
      "a\030\002 \003(\014\"b\n\026TransactionInitRequest\022\026\n\016tra" +
      "nsaction_id\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020" +
      "\001\022\030\n\tmapreduce\030\003 \001(\010:\005false\"\254\001\n\027Transact" +
      "ionInitResponse\022\026\n\016transaction_id\030\001 \002(\003\022" +
      "\026\n\npartitions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162" +
      "\030.edu.brown.hstore.Status\022\030\n\020reject_part" +
      "ition\030\004 \001(\005\022\035\n\025reject_transaction_id\030\005 \001",
      "(\003\"\303\004\n\026TransactionWorkRequest\022\026\n\016transac" +
      "tion_id\030\001 \002(\003\022\030\n\020source_partition\030\002 \002(\005\022" +
      "M\n\tfragments\030\003 \003(\0132:.edu.brown.hstore.Tr" +
      "ansactionWorkRequest.PartitionFragment\022\026" +
      "\n\007sysproc\030\004 \002(\010:\005false\022\026\n\016parameter_sets" +
      "\030\005 \003(\014\022.\n\010attached\030\006 \003(\0132\034.edu.brown.hst" +
      "ore.Dependency\022\032\n\016done_partition\030\007 \003(\005B\002" +
      "\020\001\032\036\n\017InputDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021P" +
      "artitionFragment\022\024\n\014partition_id\030\001 \002(\005\022\027" +
      "\n\013fragment_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030",
      "\003 \003(\01328.edu.brown.hstore.TransactionWork" +
      "Request.InputDependency\022\031\n\routput_dep_id" +
      "\030\004 \003(\005B\002\020\001\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tre" +
      "ad_only\030\006 \002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rla" +
      "st_fragment\030\010 \001(\010:\005false\"\270\002\n\027Transaction" +
      "WorkResponse\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007" +
      "results\030\002 \003(\01329.edu.brown.hstore.Transac" +
      "tionWorkResponse.PartitionResult\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\032\216\001\n\017P" +
      "artitionResult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006",
      "output\030\002 \003(\0132\034.edu.brown.hstore.Dependen" +
      "cy\022(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.St" +
      "atus\022\r\n\005error\030\004 \001(\014\"K\n\031TransactionPrepar" +
      "eRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart" +
      "itions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepareRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.bro" +
      "wn.hstore.Status\"t\n\030TransactionFinishReq" +
      "uest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartitio" +
      "ns\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brown",
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
      ".hstore.Status\"K\n\031TransactionFinishRespo" +
      "nse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartition" +
      "s\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReques" +
Solution content
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", "RejectPartition", "RejectTransactionId", },
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
              new java.lang.String[] { "TransactionId", "SourcePartition", "Fragments", "Sysproc", "ParameterSets", "Attached", "DonePartition", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor,
              new java.lang.String[] { "Ids", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor.getNestedTypes().get(1);
          internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "FragmentId", "InputDepId", "OutputDepId", "StmtIndex", "ReadOnly", "NeedsInput", "LastFragment", },
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor =
            internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor.getNestedTypes().get(0);
          internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Output", "Status", "Error", },
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.class,
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionMapRequest.class,
              edu.brown.hstore.Hstore.TransactionMapRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionMapResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionMapResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionMapResponse.class,
              edu.brown.hstore.Hstore.TransactionMapResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor,
              new java.lang.String[] { "TransactionId", "BasePartition", "Invocation", },
              edu.brown.hstore.Hstore.TransactionReduceRequest.class,
              edu.brown.hstore.Hstore.TransactionReduceRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Results", "Status", },
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "Status", },
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", },
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
              new java.lang.String[] { "SenderId", "Work", "OrigTxnId", },
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
              new java.lang.String[] { "SenderId", "Output", },
              edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
              edu.brown.hstore.Hstore.TransactionRedirectResponse.Builder.class);
          internal_static_edu_brown_hstore_SendDataRequest_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataRequest_descriptor,
              new java.lang.String[] { "TransactionId", "Fragments", "SenderId", },
              edu.brown.hstore.Hstore.SendDataRequest.class,
              edu.brown.hstore.Hstore.SendDataRequest.Builder.class);
          internal_static_edu_brown_hstore_SendDataResponse_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_SendDataResponse_descriptor,
              new java.lang.String[] { "TransactionId", "Partitions", "SenderId", "Status", },
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
              new java.lang.String[] { "SenderId", "ExitStatus", },
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
              new java.lang.String[] { "SenderId", },
              edu.brown.hstore.Hstore.ShutdownResponse.class,
              edu.brown.hstore.Hstore.ShutdownResponse.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncRequest_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncRequest_descriptor,
              new java.lang.String[] { "SenderId", "T0S", },
              edu.brown.hstore.Hstore.TimeSyncRequest.class,
              edu.brown.hstore.Hstore.TimeSyncRequest.Builder.class);
          internal_static_edu_brown_hstore_TimeSyncResponse_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TimeSyncResponse_descriptor,
              new java.lang.String[] { "SenderId", "T0S", "T0R", "T1S", },
              edu.brown.hstore.Hstore.TimeSyncResponse.class,
              edu.brown.hstore.Hstore.TimeSyncResponse.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          ca.evanjones.protorpc.Protocol.getDescriptor(),
        }, assigner);
  }
  
  public static void internalForceInit() {}
  
  // @@protoc_insertion_point(outer_class_scope)
}
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Other
Chunk
Conflicting content
      "s\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReques" +
      "t\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n\013or" +
      "ig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirectRe" +
<<<<<<< HEAD
      "sponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002 \002(",
      "\014\"t\n\017SendDataRequest\022\026\n\016transaction_id\030\001" +
      " \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.hsto" +
      "re.PartitionFragment\022\021\n\tsender_id\030\003 \002(\005\"" +
      "\177\n\020SendDataResponse\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender_id" +
      "\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hstor" +
      "e.Status\"9\n\017ShutdownRequest\022\021\n\tsender_id" +
      "\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020ShutdownR" +
      "esponse\022\021\n\tsender_id\030\001 \002(\005*\265\001\n\006Status\022\006\n" +
      "\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n\016ABORT_GRACEFUL\020",
      "\002\022\024\n\020ABORT_UNEXPECTED\020\003\022\031\n\025ABORT_CONNECT" +
      "ION_LOST\020\004\022\024\n\020ABORT_MISPREDICT\020\005\022\021\n\rABOR" +
      "T_RESTART\020\006\022\020\n\014ABORT_REJECT\020\007\022\023\n\017ABORT_T" +
      "HROTTLED\020\0102\253\007\n\rHStoreService\022f\n\017Transact" +
      "ionInit\022(.edu.brown.hstore.TransactionIn" +
      "itRequest\032).edu.brown.hstore.Transaction" +
      "InitResponse\022f\n\017TransactionWork\022(.edu.br" +
      "own.hstore.TransactionWorkRequest\032).edu." +
      "brown.hstore.TransactionWorkResponse\022c\n\016" +
      "TransactionMap\022\'.edu.brown.hstore.Transa",
      "ctionMapRequest\032(.edu.brown.hstore.Trans" +
      "actionMapResponse\022l\n\021TransactionReduce\022*" +
      ".edu.brown.hstore.TransactionReduceReque" +
      "st\032+.edu.brown.hstore.TransactionReduceR" +
      "esponse\022o\n\022TransactionPrepare\022+.edu.brow" +
      "n.hstore.TransactionPrepareRequest\032,.edu" +
      ".brown.hstore.TransactionPrepareResponse" +
      "\022l\n\021TransactionFinish\022*.edu.brown.hstore" +
      ".TransactionFinishRequest\032+.edu.brown.hs" +
      "tore.TransactionFinishResponse\022r\n\023Transa",
      "ctionRedirect\022,.edu.brown.hstore.Transac" +
      "tionRedirectRequest\032-.edu.brown.hstore.T" +
      "ransactionRedirectResponse\022Q\n\010SendData\022!" +
      ".edu.brown.hstore.SendDataRequest\032\".edu." +
      "brown.hstore.SendDataResponse\022Q\n\010Shutdow" +
      "n\022!.edu.brown.hstore.ShutdownRequest\032\".e" +
      "du.brown.hstore.ShutdownResponse"
=======
      "sponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002 \002(" +
      "\014\"9\n\017ShutdownRequest\022\021\n\tsender_id\030\001 \002(\005\022" +
      "\023\n\013exit_status\030\002 \002(\005\"%\n\020ShutdownResponse" +
      "\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyncRequest\022\021" +
      "\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(\003\"O\n\020TimeS",
      "yncResponse\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002" +
      " \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002(\003*\265\001\n\006Sta" +
      "tus\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n\016ABORT_GRA" +
      "CEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022\031\n\025ABORT_C" +
      "ONNECTION_LOST\020\004\022\024\n\020ABORT_MISPREDICT\020\005\022\021" +
      "\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJECT\020\007\022\023\n\017A" +
      "BORT_THROTTLED\020\0102\330\005\n\rHStoreService\022f\n\017Tr" +
      "ansactionInit\022(.edu.brown.hstore.Transac" +
      "tionInitRequest\032).edu.brown.hstore.Trans" +
      "actionInitResponse\022f\n\017TransactionWork\022(.",
      "edu.brown.hstore.TransactionWorkRequest\032" +
      ").edu.brown.hstore.TransactionWorkRespon" +
      "se\022o\n\022TransactionPrepare\022+.edu.brown.hst" +
      "ore.TransactionPrepareRequest\032,.edu.brow" +
      "n.hstore.TransactionPrepareResponse\022l\n\021T" +
      "ransactionFinish\022*.edu.brown.hstore.Tran" +
      "sactionFinishRequest\032+.edu.brown.hstore." +
      "TransactionFinishResponse\022r\n\023Transaction" +
      "Redirect\022,.edu.brown.hstore.TransactionR" +
      "edirectRequest\032-.edu.brown.hstore.Transa",
      "ctionRedirectResponse\022Q\n\010Shutdown\022!.edu." +
      "brown.hstore.ShutdownRequest\032\".edu.brown" +
      ".hstore.ShutdownResponse\022Q\n\010TimeSync\022!.e" +
      "du.brown.hstore.TimeSyncRequest\032\".edu.br" +
      "own.hstore.TimeSyncResponse"
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
Solution content
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(java.io.InputStream input)
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: edu/brown/hstore/hstore.proto

package edu.brown.hstore;

public final class Hstore {
  private Hstore() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public enum Status
      implements com.google.protobuf.ProtocolMessageEnum {
    OK(0, 0),
    ABORT_USER(1, 1),
    ABORT_GRACEFUL(2, 2),
    ABORT_UNEXPECTED(3, 3),
    ABORT_CONNECTION_LOST(4, 4),
    ABORT_MISPREDICT(5, 5),
    ABORT_RESTART(6, 6),
    ABORT_REJECT(7, 7),
    ABORT_THROTTLED(8, 8),
    ;
    
    
    public final int getNumber() { return value; }
    
    public static Status valueOf(int value) {
      switch (value) {
        case 0: return OK;
        case 1: return ABORT_USER;
        case 2: return ABORT_GRACEFUL;
        case 3: return ABORT_UNEXPECTED;
        case 4: return ABORT_CONNECTION_LOST;
        case 5: return ABORT_MISPREDICT;
        case 6: return ABORT_RESTART;
        case 7: return ABORT_REJECT;
        case 8: return ABORT_THROTTLED;
        default: return null;
      }
    }
    
    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public Status findValueByNumber(int number) {
              return Status.valueOf(number)
    ;        }
          };
    
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getEnumTypes().get(0);
    }
    
    private static final Status[] VALUES = {
      OK, ABORT_USER, ABORT_GRACEFUL, ABORT_UNEXPECTED, ABORT_CONNECTION_LOST, ABORT_MISPREDICT, ABORT_RESTART, ABORT_REJECT, ABORT_THROTTLED, 
    };
    public static Status valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }
    private final int index;
    private final int value;
    private Status(int index, int value) {
      this.index = index;
      this.value = value;
    }
    
    static {
      edu.brown.hstore.Hstore.getDescriptor();
    }
    
    // @@protoc_insertion_point(enum_scope:edu.brown.hstore.Status)
  }
  
  public static final class PartitionFragment extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionFragment.newBuilder() to construct.
    private PartitionFragment() {
      initFields();
    }
    private PartitionFragment(boolean noInit) {}
    
    private static final PartitionFragment defaultInstance;
    public static PartitionFragment getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionFragment getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
    
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionFragment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionFragment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionFragment result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionFragment.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionFragment();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionFragment internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionFragment();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionFragment build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionFragment buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionFragment buildPartial() {
      size = 0;
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionFragment returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionFragment) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionFragment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionFragment other) {
        if (other == edu.brown.hstore.Hstore.PartitionFragment.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
    }
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionFragment)
    }
    
    static {
      defaultInstance = new PartitionFragment(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionFragment)
  }
  
  public static final class PartitionResult extends
      com.google.protobuf.GeneratedMessage {
    // Use PartitionResult.newBuilder() to construct.
    private PartitionResult() {
      initFields();
    }
    private PartitionResult(boolean noInit) {}
    
    private static final PartitionResult defaultInstance;
    public static PartitionResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PartitionResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
    }
    
    // required int32 partition_id = 1;
    public static final int PARTITION_ID_FIELD_NUMBER = 1;
    private boolean hasPartitionId;
    private int partitionId_ = 0;
    public boolean hasPartitionId() { return hasPartitionId; }
    public int getPartitionId() { return partitionId_; }
    
    // required bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private boolean hasData;
    private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasData() { return hasData; }
    public com.google.protobuf.ByteString getData() { return data_; }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional bool error = 4 [default = false];
    public static final int ERROR_FIELD_NUMBER = 4;
    private boolean hasError;
    private boolean error_ = false;
    public boolean hasError() { return hasError; }
    public boolean getError() { return error_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasPartitionId) return false;
      if (!hasData) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasPartitionId()) {
        output.writeInt32(1, getPartitionId());
      }
      if (hasData()) {
        output.writeBytes(2, getData());
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasError()) {
        output.writeBool(4, getError());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
      if (hasPartitionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getPartitionId());
      }
      if (hasData()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getData());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasError()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getError());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.PartitionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.PartitionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.PartitionResult result;
      
      // Construct using edu.brown.hstore.Hstore.PartitionResult.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.PartitionResult();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.PartitionResult internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.PartitionResult();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.PartitionResult build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.PartitionResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.PartitionResult buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.PartitionResult returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.PartitionResult) {
          return mergeFrom((edu.brown.hstore.Hstore.PartitionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.PartitionResult other) {
        if (other == edu.brown.hstore.Hstore.PartitionResult.getDefaultInstance()) return this;
        if (other.hasPartitionId()) {
          setPartitionId(other.getPartitionId());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasError()) {
          setError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setPartitionId(input.readInt32());
              break;
            }
            case 18: {
              setData(input.readBytes());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setError(input.readBool());
              break;
            }
          }
        }
      }
      
      
      // required int32 partition_id = 1;
      public boolean hasPartitionId() {
        return result.hasPartitionId();
      }
      public int getPartitionId() {
        return result.getPartitionId();
      }
      public Builder setPartitionId(int value) {
        result.hasPartitionId = true;
        result.partitionId_ = value;
        return this;
      }
      public Builder clearPartitionId() {
        result.hasPartitionId = false;
        result.partitionId_ = 0;
        return this;
      }
      
      // required bytes data = 2;
      public boolean hasData() {
        return result.hasData();
      }
      public com.google.protobuf.ByteString getData() {
        return result.getData();
      }
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasData = true;
        result.data_ = value;
        return this;
      }
      public Builder clearData() {
        result.hasData = false;
        result.data_ = getDefaultInstance().getData();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional bool error = 4 [default = false];
      public boolean hasError() {
        return result.hasError();
      }
      public boolean getError() {
        return result.getError();
      }
      public Builder setError(boolean value) {
        result.hasError = true;
        result.error_ = value;
        return this;
      }
      public Builder clearError() {
        result.hasError = false;
        result.error_ = false;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.PartitionResult)
    }
    
    static {
      defaultInstance = new PartitionResult(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.PartitionResult)
  }
  
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessage {
    // Use Dependency.newBuilder() to construct.
    private Dependency() {
      initFields();
    }
    private Dependency(boolean noInit) {}
    
    private static final Dependency defaultInstance;
    public static Dependency getDefaultInstance() {
      return defaultInstance;
    }
    
    public Dependency getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
    }
    
    // required int32 id = 1;
    public static final int ID_FIELD_NUMBER = 1;
    private boolean hasId;
    private int id_ = 0;
    public boolean hasId() { return hasId; }
    public int getId() { return id_; }
    
    // repeated bytes data = 2;
    public static final int DATA_FIELD_NUMBER = 2;
    private java.util.List data_ =
      java.util.Collections.emptyList();
    public java.util.List getDataList() {
      return data_;
    }
    public int getDataCount() { return data_.size(); }
    public com.google.protobuf.ByteString getData(int index) {
      return data_.get(index);
    }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasId()) {
        output.writeInt32(1, getId());
      }
      for (com.google.protobuf.ByteString element : getDataList()) {
        output.writeBytes(2, element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getId());
      }
      
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getDataList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getDataList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.Dependency prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.Dependency result;
      
      // Construct using edu.brown.hstore.Hstore.Dependency.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.Dependency();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.Dependency internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.Dependency();
        return this;
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.Dependency.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.Dependency getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.Dependency.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.Dependency build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.Dependency buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.Dependency buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.data_ != java.util.Collections.EMPTY_LIST) {
          result.data_ =
            java.util.Collections.unmodifiableList(result.data_);
        }
        edu.brown.hstore.Hstore.Dependency returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.Dependency) {
          return mergeFrom((edu.brown.hstore.Hstore.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.Dependency other) {
        if (other == edu.brown.hstore.Hstore.Dependency.getDefaultInstance()) return this;
        if (other.hasId()) {
          setId(other.getId());
        }
        if (!other.data_.isEmpty()) {
          if (result.data_.isEmpty()) {
            result.data_ = new java.util.ArrayList();
          }
          result.data_.addAll(other.data_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setId(input.readInt32());
              break;
            }
            case 18: {
              addData(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 id = 1;
      public boolean hasId() {
        return result.hasId();
      }
      public int getId() {
        return result.getId();
      }
      public Builder setId(int value) {
        result.hasId = true;
        result.id_ = value;
        return this;
      }
      public Builder clearId() {
        result.hasId = false;
        result.id_ = 0;
        return this;
      }
      
      // repeated bytes data = 2;
      public java.util.List getDataList() {
        return java.util.Collections.unmodifiableList(result.data_);
      }
      public int getDataCount() {
        return result.getDataCount();
      }
      public com.google.protobuf.ByteString getData(int index) {
        return result.getData(index);
      }
      public Builder setData(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.data_.set(index, value);
        return this;
      }
      public Builder addData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        result.data_.add(value);
        return this;
      }
      public Builder addAllData(
          java.lang.Iterable values) {
        if (result.data_.isEmpty()) {
          result.data_ = new java.util.ArrayList();
        }
        super.addAll(values, result.data_);
        return this;
      }
      public Builder clearData() {
        result.data_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.Dependency)
    }
    
    static {
      defaultInstance = new Dependency(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.Dependency)
  }
  
  public static final class TransactionInitRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitRequest.newBuilder() to construct.
    private TransactionInitRequest() {
      initFields();
    }
    private TransactionInitRequest(boolean noInit) {}
    
    private static final TransactionInitRequest defaultInstance;
    public static TransactionInitRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitRequest)
    }
    
    static {
      defaultInstance = new TransactionInitRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitRequest)
  }
  
  public static final class TransactionInitResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionInitResponse.newBuilder() to construct.
    private TransactionInitResponse() {
      initFields();
    }
    private TransactionInitResponse(boolean noInit) {}
    
    private static final TransactionInitResponse defaultInstance;
    public static TransactionInitResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionInitResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    // optional int32 reject_partition = 4;
    public static final int REJECT_PARTITION_FIELD_NUMBER = 4;
    private boolean hasRejectPartition;
    private int rejectPartition_ = 0;
    public boolean hasRejectPartition() { return hasRejectPartition; }
    public int getRejectPartition() { return rejectPartition_; }
    
    // optional int64 reject_transaction_id = 5;
    public static final int REJECT_TRANSACTION_ID_FIELD_NUMBER = 5;
    private boolean hasRejectTransactionId;
    private long rejectTransactionId_ = 0L;
    public boolean hasRejectTransactionId() { return hasRejectTransactionId; }
    public long getRejectTransactionId() { return rejectTransactionId_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        output.writeInt32(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        output.writeInt64(5, getRejectTransactionId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      if (hasRejectPartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, getRejectPartition());
      }
      if (hasRejectTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, getRejectTransactionId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionInitResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionInitResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionInitResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionInitResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionInitResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionInitResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionInitResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionInitResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionInitResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionInitResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionInitResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionInitResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionInitResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        if (other.hasRejectPartition()) {
          setRejectPartition(other.getRejectPartition());
        }
        if (other.hasRejectTransactionId()) {
          setRejectTransactionId(other.getRejectTransactionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
            case 32: {
              setRejectPartition(input.readInt32());
              break;
            }
            case 40: {
              setRejectTransactionId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // optional int32 reject_partition = 4;
      public boolean hasRejectPartition() {
        return result.hasRejectPartition();
      }
      public int getRejectPartition() {
        return result.getRejectPartition();
      }
      public Builder setRejectPartition(int value) {
        result.hasRejectPartition = true;
        result.rejectPartition_ = value;
        return this;
      }
      public Builder clearRejectPartition() {
        result.hasRejectPartition = false;
        result.rejectPartition_ = 0;
        return this;
      }
      
      // optional int64 reject_transaction_id = 5;
      public boolean hasRejectTransactionId() {
        return result.hasRejectTransactionId();
      }
      public long getRejectTransactionId() {
        return result.getRejectTransactionId();
      }
      public Builder setRejectTransactionId(long value) {
        result.hasRejectTransactionId = true;
        result.rejectTransactionId_ = value;
        return this;
      }
      public Builder clearRejectTransactionId() {
        result.hasRejectTransactionId = false;
        result.rejectTransactionId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionInitResponse)
    }
    
    static {
      defaultInstance = new TransactionInitResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionInitResponse)
  }
  
  public static final class TransactionWorkRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkRequest.newBuilder() to construct.
    private TransactionWorkRequest() {
      initFields();
    }
    private TransactionWorkRequest(boolean noInit) {}
    
    private static final TransactionWorkRequest defaultInstance;
    public static TransactionWorkRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
    }
    
    public static final class InputDependency extends
        com.google.protobuf.GeneratedMessage {
      // Use InputDependency.newBuilder() to construct.
      private InputDependency() {
        initFields();
      }
      private InputDependency(boolean noInit) {}
      
      private static final InputDependency defaultInstance;
      public static InputDependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public InputDependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
      }
      
      // repeated int32 ids = 1;
      public static final int IDS_FIELD_NUMBER = 1;
      private java.util.List ids_ =
        java.util.Collections.emptyList();
      public java.util.List getIdsList() {
        return ids_;
      }
      public int getIdsCount() { return ids_.size(); }
      public int getIds(int index) {
        return ids_.get(index);
      }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        for (int element : getIdsList()) {
          output.writeInt32(1, element);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        {
          int dataSize = 0;
          for (int element : getIdsList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIdsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.ids_ != java.util.Collections.EMPTY_LIST) {
            result.ids_ =
              java.util.Collections.unmodifiableList(result.ids_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.getDefaultInstance()) return this;
          if (!other.ids_.isEmpty()) {
            if (result.ids_.isEmpty()) {
              result.ids_ = new java.util.ArrayList();
            }
            result.ids_.addAll(other.ids_);
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                addIds(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIds(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }
        
        
        // repeated int32 ids = 1;
        public java.util.List getIdsList() {
          return java.util.Collections.unmodifiableList(result.ids_);
        }
        public int getIdsCount() {
          return result.getIdsCount();
        }
        public int getIds(int index) {
          return result.getIds(index);
        }
        public Builder setIds(int index, int value) {
          result.ids_.set(index, value);
          return this;
        }
        public Builder addIds(int value) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          result.ids_.add(value);
          return this;
        }
        public Builder addAllIds(
            java.lang.Iterable values) {
          if (result.ids_.isEmpty()) {
            result.ids_ = new java.util.ArrayList();
          }
          super.addAll(values, result.ids_);
          return this;
        }
        public Builder clearIds() {
          result.ids_ = java.util.Collections.emptyList();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
      }
      
      static {
        defaultInstance = new InputDependency(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.InputDependency)
    }
    
    public static final class PartitionFragment extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionFragment.newBuilder() to construct.
      private PartitionFragment() {
        initFields();
      }
      private PartitionFragment(boolean noInit) {}
      
      private static final PartitionFragment defaultInstance;
      public static PartitionFragment getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionFragment getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated int32 fragment_id = 2 [packed = true];
      public static final int FRAGMENT_ID_FIELD_NUMBER = 2;
      private java.util.List fragmentId_ =
        java.util.Collections.emptyList();
      public java.util.List getFragmentIdList() {
        return fragmentId_;
      }
      public int getFragmentIdCount() { return fragmentId_.size(); }
      public int getFragmentId(int index) {
        return fragmentId_.get(index);
      }
      private int fragmentIdMemoizedSerializedSize = -1;
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
      public static final int INPUT_DEP_ID_FIELD_NUMBER = 3;
      private java.util.List inputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getInputDepIdList() {
        return inputDepId_;
      }
      public int getInputDepIdCount() { return inputDepId_.size(); }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
        return inputDepId_.get(index);
      }
      
      // repeated int32 output_dep_id = 4 [packed = true];
      public static final int OUTPUT_DEP_ID_FIELD_NUMBER = 4;
      private java.util.List outputDepId_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputDepIdList() {
        return outputDepId_;
      }
      public int getOutputDepIdCount() { return outputDepId_.size(); }
      public int getOutputDepId(int index) {
        return outputDepId_.get(index);
      }
      private int outputDepIdMemoizedSerializedSize = -1;
      
      // repeated int32 stmt_index = 5 [packed = true];
      public static final int STMT_INDEX_FIELD_NUMBER = 5;
      private java.util.List stmtIndex_ =
        java.util.Collections.emptyList();
      public java.util.List getStmtIndexList() {
        return stmtIndex_;
      }
      public int getStmtIndexCount() { return stmtIndex_.size(); }
      public int getStmtIndex(int index) {
        return stmtIndex_.get(index);
      }
      private int stmtIndexMemoizedSerializedSize = -1;
      
      // required bool read_only = 6;
      public static final int READ_ONLY_FIELD_NUMBER = 6;
      private boolean hasReadOnly;
      private boolean readOnly_ = false;
      public boolean hasReadOnly() { return hasReadOnly; }
      public boolean getReadOnly() { return readOnly_; }
      
      // required bool needs_input = 7;
      public static final int NEEDS_INPUT_FIELD_NUMBER = 7;
      private boolean hasNeedsInput;
      private boolean needsInput_ = false;
      public boolean hasNeedsInput() { return hasNeedsInput; }
      public boolean getNeedsInput() { return needsInput_; }
      
      // optional bool last_fragment = 8 [default = false];
      public static final int LAST_FRAGMENT_FIELD_NUMBER = 8;
      private boolean hasLastFragment;
      private boolean lastFragment_ = false;
      public boolean hasLastFragment() { return hasLastFragment; }
      public boolean getLastFragment() { return lastFragment_; }
      
      private void initFields() {
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasReadOnly) return false;
        if (!hasNeedsInput) return false;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        if (getFragmentIdList().size() > 0) {
          output.writeRawVarint32(18);
          output.writeRawVarint32(fragmentIdMemoizedSerializedSize);
        }
        for (int element : getFragmentIdList()) {
          output.writeInt32NoTag(element);
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          output.writeMessage(3, element);
        }
        if (getOutputDepIdList().size() > 0) {
          output.writeRawVarint32(34);
          output.writeRawVarint32(outputDepIdMemoizedSerializedSize);
        }
        for (int element : getOutputDepIdList()) {
          output.writeInt32NoTag(element);
        }
        if (getStmtIndexList().size() > 0) {
          output.writeRawVarint32(42);
          output.writeRawVarint32(stmtIndexMemoizedSerializedSize);
        }
        for (int element : getStmtIndexList()) {
          output.writeInt32NoTag(element);
        }
        if (hasReadOnly()) {
          output.writeBool(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          output.writeBool(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          output.writeBool(8, getLastFragment());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        {
          int dataSize = 0;
          for (int element : getFragmentIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getFragmentIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          fragmentIdMemoizedSerializedSize = dataSize;
        }
        for (edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency element : getInputDepIdList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, element);
        }
        {
          int dataSize = 0;
          for (int element : getOutputDepIdList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getOutputDepIdList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          outputDepIdMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int element : getStmtIndexList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          if (!getStmtIndexList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          stmtIndexMemoizedSerializedSize = dataSize;
        }
        if (hasReadOnly()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, getReadOnly());
        }
        if (hasNeedsInput()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, getNeedsInput());
        }
        if (hasLastFragment()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, getLastFragment());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.fragmentId_ != java.util.Collections.EMPTY_LIST) {
            result.fragmentId_ =
              java.util.Collections.unmodifiableList(result.fragmentId_);
          }
          if (result.inputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.inputDepId_ =
              java.util.Collections.unmodifiableList(result.inputDepId_);
          }
          if (result.outputDepId_ != java.util.Collections.EMPTY_LIST) {
            result.outputDepId_ =
              java.util.Collections.unmodifiableList(result.outputDepId_);
          }
          if (result.stmtIndex_ != java.util.Collections.EMPTY_LIST) {
            result.stmtIndex_ =
              java.util.Collections.unmodifiableList(result.stmtIndex_);
          }
          edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.fragmentId_.isEmpty()) {
            if (result.fragmentId_.isEmpty()) {
              result.fragmentId_ = new java.util.ArrayList();
            }
            result.fragmentId_.addAll(other.fragmentId_);
          }
          if (!other.inputDepId_.isEmpty()) {
            if (result.inputDepId_.isEmpty()) {
              result.inputDepId_ = new java.util.ArrayList();
            }
            result.inputDepId_.addAll(other.inputDepId_);
          }
          if (!other.outputDepId_.isEmpty()) {
            if (result.outputDepId_.isEmpty()) {
              result.outputDepId_ = new java.util.ArrayList();
            }
            result.outputDepId_.addAll(other.outputDepId_);
          }
          if (!other.stmtIndex_.isEmpty()) {
            if (result.stmtIndex_.isEmpty()) {
              result.stmtIndex_ = new java.util.ArrayList();
            }
            result.stmtIndex_.addAll(other.stmtIndex_);
          }
          if (other.hasReadOnly()) {
            setReadOnly(other.getReadOnly());
          }
          if (other.hasNeedsInput()) {
            setNeedsInput(other.getNeedsInput());
          }
          if (other.hasLastFragment()) {
            setLastFragment(other.getLastFragment());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 16: {
                addFragmentId(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFragmentId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 26: {
                edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addInputDepId(subBuilder.buildPartial());
                break;
              }
              case 32: {
                addOutputDepId(input.readInt32());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addOutputDepId(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                addStmtIndex(input.readInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addStmtIndex(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                setReadOnly(input.readBool());
                break;
              }
              case 56: {
                setNeedsInput(input.readBool());
                break;
              }
              case 64: {
                setLastFragment(input.readBool());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated int32 fragment_id = 2 [packed = true];
        public java.util.List getFragmentIdList() {
          return java.util.Collections.unmodifiableList(result.fragmentId_);
        }
        public int getFragmentIdCount() {
          return result.getFragmentIdCount();
        }
        public int getFragmentId(int index) {
          return result.getFragmentId(index);
        }
        public Builder setFragmentId(int index, int value) {
          result.fragmentId_.set(index, value);
          return this;
        }
        public Builder addFragmentId(int value) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          result.fragmentId_.add(value);
          return this;
        }
        public Builder addAllFragmentId(
            java.lang.Iterable values) {
          if (result.fragmentId_.isEmpty()) {
            result.fragmentId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.fragmentId_);
          return this;
        }
        public Builder clearFragmentId() {
          result.fragmentId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated .edu.brown.hstore.TransactionWorkRequest.InputDependency input_dep_id = 3;
        public java.util.List getInputDepIdList() {
          return java.util.Collections.unmodifiableList(result.inputDepId_);
        }
        public int getInputDepIdCount() {
          return result.getInputDepIdCount();
        }
        public edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency getInputDepId(int index) {
          return result.getInputDepId(index);
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.inputDepId_.set(index, value);
          return this;
        }
        public Builder setInputDepId(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          result.inputDepId_.set(index, builderForValue.build());
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(value);
          return this;
        }
        public Builder addInputDepId(edu.brown.hstore.Hstore.TransactionWorkRequest.InputDependency.Builder builderForValue) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          result.inputDepId_.add(builderForValue.build());
          return this;
        }
        public Builder addAllInputDepId(
            java.lang.Iterable values) {
          if (result.inputDepId_.isEmpty()) {
            result.inputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.inputDepId_);
          return this;
        }
        public Builder clearInputDepId() {
          result.inputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 output_dep_id = 4 [packed = true];
        public java.util.List getOutputDepIdList() {
          return java.util.Collections.unmodifiableList(result.outputDepId_);
        }
        public int getOutputDepIdCount() {
          return result.getOutputDepIdCount();
        }
        public int getOutputDepId(int index) {
          return result.getOutputDepId(index);
        }
        public Builder setOutputDepId(int index, int value) {
          result.outputDepId_.set(index, value);
          return this;
        }
        public Builder addOutputDepId(int value) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          result.outputDepId_.add(value);
          return this;
        }
        public Builder addAllOutputDepId(
            java.lang.Iterable values) {
          if (result.outputDepId_.isEmpty()) {
            result.outputDepId_ = new java.util.ArrayList();
          }
          super.addAll(values, result.outputDepId_);
          return this;
        }
        public Builder clearOutputDepId() {
          result.outputDepId_ = java.util.Collections.emptyList();
          return this;
        }
        
        // repeated int32 stmt_index = 5 [packed = true];
        public java.util.List getStmtIndexList() {
          return java.util.Collections.unmodifiableList(result.stmtIndex_);
        }
        public int getStmtIndexCount() {
          return result.getStmtIndexCount();
        }
        public int getStmtIndex(int index) {
          return result.getStmtIndex(index);
        }
        public Builder setStmtIndex(int index, int value) {
          result.stmtIndex_.set(index, value);
          return this;
        }
        public Builder addStmtIndex(int value) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          result.stmtIndex_.add(value);
          return this;
        }
        public Builder addAllStmtIndex(
            java.lang.Iterable values) {
          if (result.stmtIndex_.isEmpty()) {
            result.stmtIndex_ = new java.util.ArrayList();
          }
          super.addAll(values, result.stmtIndex_);
          return this;
        }
        public Builder clearStmtIndex() {
          result.stmtIndex_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required bool read_only = 6;
        public boolean hasReadOnly() {
          return result.hasReadOnly();
        }
        public boolean getReadOnly() {
          return result.getReadOnly();
        }
        public Builder setReadOnly(boolean value) {
          result.hasReadOnly = true;
          result.readOnly_ = value;
          return this;
        }
        public Builder clearReadOnly() {
          result.hasReadOnly = false;
          result.readOnly_ = false;
          return this;
        }
        
        // required bool needs_input = 7;
        public boolean hasNeedsInput() {
          return result.hasNeedsInput();
        }
        public boolean getNeedsInput() {
          return result.getNeedsInput();
        }
        public Builder setNeedsInput(boolean value) {
          result.hasNeedsInput = true;
          result.needsInput_ = value;
          return this;
        }
        public Builder clearNeedsInput() {
          result.hasNeedsInput = false;
          result.needsInput_ = false;
          return this;
        }
        
        // optional bool last_fragment = 8 [default = false];
        public boolean hasLastFragment() {
          return result.hasLastFragment();
        }
        public boolean getLastFragment() {
          return result.getLastFragment();
        }
        public Builder setLastFragment(boolean value) {
          result.hasLastFragment = true;
          result.lastFragment_ = value;
          return this;
        }
        public Builder clearLastFragment() {
          result.hasLastFragment = false;
          result.lastFragment_ = false;
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
      }
      
      static {
        defaultInstance = new PartitionFragment(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest.PartitionFragment)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 source_partition = 2;
    public static final int SOURCE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasSourcePartition;
    private int sourcePartition_ = 0;
    public boolean hasSourcePartition() { return hasSourcePartition; }
    public int getSourcePartition() { return sourcePartition_; }
    
    // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
    public static final int FRAGMENTS_FIELD_NUMBER = 3;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required bool sysproc = 4 [default = false];
    public static final int SYSPROC_FIELD_NUMBER = 4;
    private boolean hasSysproc;
    private boolean sysproc_ = false;
    public boolean hasSysproc() { return hasSysproc; }
    public boolean getSysproc() { return sysproc_; }
    
    // repeated bytes parameter_sets = 5;
    public static final int PARAMETER_SETS_FIELD_NUMBER = 5;
    private java.util.List parameterSets_ =
      java.util.Collections.emptyList();
    public java.util.List getParameterSetsList() {
      return parameterSets_;
    }
    public int getParameterSetsCount() { return parameterSets_.size(); }
    public com.google.protobuf.ByteString getParameterSets(int index) {
      return parameterSets_.get(index);
    }
    
    // repeated .edu.brown.hstore.Dependency attached = 6;
    public static final int ATTACHED_FIELD_NUMBER = 6;
    private java.util.List attached_ =
      java.util.Collections.emptyList();
    public java.util.List getAttachedList() {
      return attached_;
    }
    public int getAttachedCount() { return attached_.size(); }
    public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
      return attached_.get(index);
    }
    
    // repeated int32 done_partition = 7 [packed = true];
    public static final int DONE_PARTITION_FIELD_NUMBER = 7;
    private java.util.List donePartition_ =
      java.util.Collections.emptyList();
    public java.util.List getDonePartitionList() {
      return donePartition_;
    }
    public int getDonePartitionCount() { return donePartition_.size(); }
    public int getDonePartition(int index) {
      return donePartition_.get(index);
    }
    private int donePartitionMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSourcePartition) return false;
      if (!hasSysproc) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        output.writeInt32(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(3, element);
      }
      if (hasSysproc()) {
        output.writeBool(4, getSysproc());
      }
      for (com.google.protobuf.ByteString element : getParameterSetsList()) {
        output.writeBytes(5, element);
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        output.writeMessage(6, element);
      }
      if (getDonePartitionList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(donePartitionMemoizedSerializedSize);
      }
      for (int element : getDonePartitionList()) {
      
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasSourcePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getSourcePartition());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasSysproc()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, getSysproc());
      }
      {
        int dataSize = 0;
        for (com.google.protobuf.ByteString element : getParameterSetsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(element);
        }
        size += dataSize;
        size += 1 * getParameterSetsList().size();
      }
      for (edu.brown.hstore.Hstore.Dependency element : getAttachedList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, element);
      }
      {
        int dataSize = 0;
        for (int element : getDonePartitionList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getDonePartitionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        donePartitionMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        if (result.parameterSets_ != java.util.Collections.EMPTY_LIST) {
          result.parameterSets_ =
            java.util.Collections.unmodifiableList(result.parameterSets_);
        }
        if (result.attached_ != java.util.Collections.EMPTY_LIST) {
          result.attached_ =
            java.util.Collections.unmodifiableList(result.attached_);
        }
        if (result.donePartition_ != java.util.Collections.EMPTY_LIST) {
          result.donePartition_ =
            java.util.Collections.unmodifiableList(result.donePartition_);
        }
        edu.brown.hstore.Hstore.TransactionWorkRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasSourcePartition()) {
          setSourcePartition(other.getSourcePartition());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSysproc()) {
          setSysproc(other.getSysproc());
        }
        if (!other.parameterSets_.isEmpty()) {
          if (result.parameterSets_.isEmpty()) {
            result.parameterSets_ = new java.util.ArrayList();
          }
          result.parameterSets_.addAll(other.parameterSets_);
        }
        if (!other.attached_.isEmpty()) {
          if (result.attached_.isEmpty()) {
            result.attached_ = new java.util.ArrayList();
          }
          result.attached_.addAll(other.attached_);
        }
        if (!other.donePartition_.isEmpty()) {
          if (result.donePartition_.isEmpty()) {
            result.donePartition_ = new java.util.ArrayList();
          }
          result.donePartition_.addAll(other.donePartition_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setSourcePartition(input.readInt32());
              break;
            }
            case 26: {
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 32: {
              setSysproc(input.readBool());
              break;
            }
            case 42: {
              addParameterSets(input.readBytes());
              break;
            }
            case 50: {
              edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addAttached(subBuilder.buildPartial());
              break;
            }
            case 56: {
              addDonePartition(input.readInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addDonePartition(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 source_partition = 2;
      public boolean hasSourcePartition() {
        return result.hasSourcePartition();
      }
      public int getSourcePartition() {
        return result.getSourcePartition();
      }
      public Builder setSourcePartition(int value) {
        result.hasSourcePartition = true;
        result.sourcePartition_ = value;
        return this;
      }
      public Builder clearSourcePartition() {
        result.hasSourcePartition = false;
        result.sourcePartition_ = 0;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkRequest.PartitionFragment fragments = 3;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required bool sysproc = 4 [default = false];
      public boolean hasSysproc() {
        return result.hasSysproc();
      }
      public boolean getSysproc() {
        return result.getSysproc();
      }
      public Builder setSysproc(boolean value) {
        result.hasSysproc = true;
        result.sysproc_ = value;
        return this;
      }
      public Builder clearSysproc() {
        result.hasSysproc = false;
        result.sysproc_ = false;
        return this;
      }
      
      // repeated bytes parameter_sets = 5;
      public java.util.List getParameterSetsList() {
        return java.util.Collections.unmodifiableList(result.parameterSets_);
      }
      public int getParameterSetsCount() {
        return result.getParameterSetsCount();
      }
      public com.google.protobuf.ByteString getParameterSets(int index) {
        return result.getParameterSets(index);
      }
      public Builder setParameterSets(int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.parameterSets_.set(index, value);
        return this;
      }
      public Builder addParameterSets(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        result.parameterSets_.add(value);
        return this;
      }
      public Builder addAllParameterSets(
          java.lang.Iterable values) {
        if (result.parameterSets_.isEmpty()) {
          result.parameterSets_ = new java.util.ArrayList();
        }
        super.addAll(values, result.parameterSets_);
        return this;
      }
      public Builder clearParameterSets() {
        result.parameterSets_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated .edu.brown.hstore.Dependency attached = 6;
      public java.util.List getAttachedList() {
        return java.util.Collections.unmodifiableList(result.attached_);
      }
      public int getAttachedCount() {
        return result.getAttachedCount();
      }
      public edu.brown.hstore.Hstore.Dependency getAttached(int index) {
        return result.getAttached(index);
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.attached_.set(index, value);
        return this;
      }
      public Builder setAttached(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        result.attached_.set(index, builderForValue.build());
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(value);
        return this;
      }
      public Builder addAttached(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        result.attached_.add(builderForValue.build());
        return this;
      }
      public Builder addAllAttached(
          java.lang.Iterable values) {
        if (result.attached_.isEmpty()) {
          result.attached_ = new java.util.ArrayList();
        }
        super.addAll(values, result.attached_);
        return this;
      }
      public Builder clearAttached() {
        result.attached_ = java.util.Collections.emptyList();
        return this;
      }
      
      // repeated int32 done_partition = 7 [packed = true];
      public java.util.List getDonePartitionList() {
        return java.util.Collections.unmodifiableList(result.donePartition_);
      }
      public int getDonePartitionCount() {
        return result.getDonePartitionCount();
      }
      public int getDonePartition(int index) {
        return result.getDonePartition(index);
      }
      public Builder setDonePartition(int index, int value) {
        result.donePartition_.set(index, value);
        return this;
      }
      public Builder addDonePartition(int value) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        result.donePartition_.add(value);
        return this;
    
      }
      public Builder addAllDonePartition(
          java.lang.Iterable values) {
        if (result.donePartition_.isEmpty()) {
          result.donePartition_ = new java.util.ArrayList();
        }
        super.addAll(values, result.donePartition_);
        return this;
      }
      public Builder clearDonePartition() {
        result.donePartition_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkRequest)
    }
    
    static {
      defaultInstance = new TransactionWorkRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkRequest)
  }
  
  public static final class TransactionWorkResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionWorkResponse.newBuilder() to construct.
    private TransactionWorkResponse() {
      initFields();
    }
    private TransactionWorkResponse(boolean noInit) {}
    
    private static final TransactionWorkResponse defaultInstance;
    public static TransactionWorkResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionWorkResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
    }
    
    public static final class PartitionResult extends
        com.google.protobuf.GeneratedMessage {
      // Use PartitionResult.newBuilder() to construct.
      private PartitionResult() {
        initFields();
      }
      private PartitionResult(boolean noInit) {}
      
      private static final PartitionResult defaultInstance;
      public static PartitionResult getDefaultInstance() {
        return defaultInstance;
      }
      
      public PartitionResult getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
      }
      
      // required int32 partition_id = 1;
      public static final int PARTITION_ID_FIELD_NUMBER = 1;
      private boolean hasPartitionId;
      private int partitionId_ = 0;
      public boolean hasPartitionId() { return hasPartitionId; }
      public int getPartitionId() { return partitionId_; }
      
      // repeated .edu.brown.hstore.Dependency output = 2;
      public static final int OUTPUT_FIELD_NUMBER = 2;
      private java.util.List output_ =
        java.util.Collections.emptyList();
      public java.util.List getOutputList() {
        return output_;
      }
      public int getOutputCount() { return output_.size(); }
      public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
        return output_.get(index);
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public static final int STATUS_FIELD_NUMBER = 3;
      private boolean hasStatus;
      private edu.brown.hstore.Hstore.Status status_;
      public boolean hasStatus() { return hasStatus; }
      public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
      
      // optional bytes error = 4;
      public static final int ERROR_FIELD_NUMBER = 4;
      private boolean hasError;
      private com.google.protobuf.ByteString error_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasError() { return hasError; }
      public com.google.protobuf.ByteString getError() { return error_; }
      
      private void initFields() {
        status_ = edu.brown.hstore.Hstore.Status.OK;
      }
      public final boolean isInitialized() {
        if (!hasPartitionId) return false;
        if (!hasStatus) return false;
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          if (!element.isInitialized()) return false;
        }
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasPartitionId()) {
          output.writeInt32(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          output.writeMessage(2, element);
        }
        if (hasStatus()) {
          output.writeEnum(3, getStatus().getNumber());
        }
        if (hasError()) {
          output.writeBytes(4, getError());
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (hasPartitionId()) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, getPartitionId());
        }
        for (edu.brown.hstore.Hstore.Dependency element : getOutputList()) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, element);
        }
        if (hasStatus()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, getStatus().getNumber());
        }
        if (hasError()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getError());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder {
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult result;
        
        // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder()
        private Builder() {}
        
        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return builder;
        }
        
        protected edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult internalGetResult() {
          return result;
        }
        
        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult();
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(result);
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDescriptor();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getDefaultInstanceForType() {
          return edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance();
        }
        
        public boolean isInitialized() {
          return result.isInitialized();
        }
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }
        
        private edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }
        
        public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.output_ != java.util.Collections.EMPTY_LIST) {
            result.output_ =
              java.util.Collections.unmodifiableList(result.output_);
          }
          edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult returnMe = result;
          result = null;
          return returnMe;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult) {
            return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult other) {
          if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.getDefaultInstance()) return this;
          if (other.hasPartitionId()) {
            setPartitionId(other.getPartitionId());
          }
          if (!other.output_.isEmpty()) {
            if (result.output_.isEmpty()) {
              result.output_ = new java.util.ArrayList();
            }
            result.output_.addAll(other.output_);
          }
          if (other.hasStatus()) {
            setStatus(other.getStatus());
          }
          if (other.hasError()) {
            setError(other.getError());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  return this;
                }
                break;
              }
              case 8: {
                setPartitionId(input.readInt32());
                break;
              }
              case 18: {
                edu.brown.hstore.Hstore.Dependency.Builder subBuilder = edu.brown.hstore.Hstore.Dependency.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(3, rawValue);
                } else {
                  setStatus(value);
                }
                break;
              }
              case 34: {
                setError(input.readBytes());
                break;
              }
            }
          }
        }
        
        
        // required int32 partition_id = 1;
        public boolean hasPartitionId() {
          return result.hasPartitionId();
        }
        public int getPartitionId() {
          return result.getPartitionId();
        }
        public Builder setPartitionId(int value) {
          result.hasPartitionId = true;
          result.partitionId_ = value;
          return this;
        }
        public Builder clearPartitionId() {
          result.hasPartitionId = false;
          result.partitionId_ = 0;
          return this;
        }
        
        // repeated .edu.brown.hstore.Dependency output = 2;
        public java.util.List getOutputList() {
          return java.util.Collections.unmodifiableList(result.output_);
        }
        public int getOutputCount() {
          return result.getOutputCount();
        }
        public edu.brown.hstore.Hstore.Dependency getOutput(int index) {
          return result.getOutput(index);
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.output_.set(index, value);
          return this;
        }
        public Builder setOutput(int index, edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          result.output_.set(index, builderForValue.build());
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency value) {
          if (value == null) {
            throw new NullPointerException();
          }
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(value);
          return this;
        }
        public Builder addOutput(edu.brown.hstore.Hstore.Dependency.Builder builderForValue) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          result.output_.add(builderForValue.build());
          return this;
        }
        public Builder addAllOutput(
            java.lang.Iterable values) {
          if (result.output_.isEmpty()) {
            result.output_ = new java.util.ArrayList();
          }
          super.addAll(values, result.output_);
          return this;
        }
        public Builder clearOutput() {
          result.output_ = java.util.Collections.emptyList();
          return this;
        }
        
        // required .edu.brown.hstore.Status status = 3;
        public boolean hasStatus() {
          return result.hasStatus();
        }
        public edu.brown.hstore.Hstore.Status getStatus() {
          return result.getStatus();
        }
        public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasStatus = true;
          result.status_ = value;
          return this;
        }
        public Builder clearStatus() {
          result.hasStatus = false;
          result.status_ = edu.brown.hstore.Hstore.Status.OK;
          return this;
        }
        
        // optional bytes error = 4;
        public boolean hasError() {
          return result.hasError();
        }
        public com.google.protobuf.ByteString getError() {
          return result.getError();
        }
        public Builder setError(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.hasError = true;
          result.error_ = value;
          return this;
        }
        public Builder clearError() {
          result.hasError = false;
          result.error_ = getDefaultInstance().getError();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
      }
      
      static {
        defaultInstance = new PartitionResult(true);
        edu.brown.hstore.Hstore.internalForceInit();
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse.PartitionResult)
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionWorkResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionWorkResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionWorkResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionWorkResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionWorkResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionWorkResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionWorkResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionWorkResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionWorkResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionWorkResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionWorkResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.TransactionWorkResponse.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.TransactionWorkResponse.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionWorkResponse)
    }
    
    static {
      defaultInstance = new TransactionWorkResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionWorkResponse)
  }
  
  public static final class TransactionMapRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapRequest.newBuilder() to construct.
    private TransactionMapRequest() {
      initFields();
    }
    private TransactionMapRequest(boolean noInit) {}
    
    private static final TransactionMapRequest defaultInstance;
    public static TransactionMapRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionMapRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionMapRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapRequest)
    }
    
    static {
      defaultInstance = new TransactionMapRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapRequest)
  }
  
  public static final class TransactionMapResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionMapResponse.newBuilder() to construct.
    private TransactionMapResponse() {
      initFields();
    }
    private TransactionMapResponse(boolean noInit) {}
    
    private static final TransactionMapResponse defaultInstance;
    public static TransactionMapResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionMapResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      }
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionMapResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionMapResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionMapResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionMapResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionMapResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionMapResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionMapResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      
      private edu.brown.hstore.Hstore.TransactionMapResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionMapResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionMapResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionMapResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionMapResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionMapResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionMapResponse)
    }
    
    static {
      defaultInstance = new TransactionMapResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionMapResponse)
  }
  
  public static final class TransactionReduceRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceRequest.newBuilder() to construct.
    private TransactionReduceRequest() {
      initFields();
    }
    private TransactionReduceRequest(boolean noInit) {}
    
    private static final TransactionReduceRequest defaultInstance;
    public static TransactionReduceRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // required int32 base_partition = 2;
    public static final int BASE_PARTITION_FIELD_NUMBER = 2;
    private boolean hasBasePartition;
    private int basePartition_ = 0;
    public boolean hasBasePartition() { return hasBasePartition; }
    public int getBasePartition() { return basePartition_; }
    
    // required bytes invocation = 3;
    public static final int INVOCATION_FIELD_NUMBER = 3;
    private boolean hasInvocation;
    private com.google.protobuf.ByteString invocation_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasInvocation() { return hasInvocation; }
    public com.google.protobuf.ByteString getInvocation() { return invocation_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasBasePartition) return false;
      if (!hasInvocation) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (hasBasePartition()) {
        output.writeInt32(2, getBasePartition());
      }
      if (hasInvocation()) {
        output.writeBytes(3, getInvocation());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      if (hasBasePartition()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getBasePartition());
      }
      if (hasInvocation()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getInvocation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionReduceRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (other.hasBasePartition()) {
          setBasePartition(other.getBasePartition());
        }
        if (other.hasInvocation()) {
          setInvocation(other.getInvocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              setBasePartition(input.readInt32());
              break;
            }
            case 26: {
              setInvocation(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // required int32 base_partition = 2;
      public boolean hasBasePartition() {
        return result.hasBasePartition();
      }
      public int getBasePartition() {
        return result.getBasePartition();
      }
      public Builder setBasePartition(int value) {
        result.hasBasePartition = true;
        result.basePartition_ = value;
        return this;
      }
      public Builder clearBasePartition() {
        result.hasBasePartition = false;
        result.basePartition_ = 0;
        return this;
      }
      
      // required bytes invocation = 3;
      public boolean hasInvocation() {
        return result.hasInvocation();
      }
      public com.google.protobuf.ByteString getInvocation() {
        return result.getInvocation();
      }
      public Builder setInvocation(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasInvocation = true;
        result.invocation_ = value;
        return this;
      }
      public Builder clearInvocation() {
        result.hasInvocation = false;
        result.invocation_ = getDefaultInstance().getInvocation();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceRequest)
    }
    
    static {
      defaultInstance = new TransactionReduceRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceRequest)
  }
  
  public static final class TransactionReduceResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionReduceResponse.newBuilder() to construct.
    private TransactionReduceResponse() {
      initFields();
    }
    private TransactionReduceResponse(boolean noInit) {}
    
    private static final TransactionReduceResponse defaultInstance;
    public static TransactionReduceResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionReduceResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionResult results = 2;
    public static final int RESULTS_FIELD_NUMBER = 2;
    private java.util.List results_ =
      java.util.Collections.emptyList();
    public java.util.List getResultsList() {
      return results_;
    }
    public int getResultsCount() { return results_.size(); }
    public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
      return results_.get(index);
    }
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        output.writeMessage(2, element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionResult element : getResultsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionReduceResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionReduceResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionReduceResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionReduceResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionReduceResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionReduceResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionReduceResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionReduceResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.results_ != java.util.Collections.EMPTY_LIST) {
          result.results_ =
            java.util.Collections.unmodifiableList(result.results_);
        }
        edu.brown.hstore.Hstore.TransactionReduceResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionReduceResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionReduceResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionReduceResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.results_.isEmpty()) {
          if (result.results_.isEmpty()) {
            result.results_ = new java.util.ArrayList();
          }
          result.results_.addAll(other.results_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionResult.Builder subBuilder = edu.brown.hstore.Hstore.PartitionResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addResults(subBuilder.buildPartial());
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionResult results = 2;
      public java.util.List getResultsList() {
        return java.util.Collections.unmodifiableList(result.results_);
      }
      public int getResultsCount() {
        return result.getResultsCount();
      }
      public edu.brown.hstore.Hstore.PartitionResult getResults(int index) {
        return result.getResults(index);
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.results_.set(index, value);
        return this;
      }
      public Builder setResults(int index, edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        result.results_.set(index, builderForValue.build());
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(value);
        return this;
      }
      public Builder addResults(edu.brown.hstore.Hstore.PartitionResult.Builder builderForValue) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        result.results_.add(builderForValue.build());
        return this;
      }
      public Builder addAllResults(
          java.lang.Iterable values) {
        if (result.results_.isEmpty()) {
          result.results_ = new java.util.ArrayList();
        }
        super.addAll(values, result.results_);
        return this;
      }
      public Builder clearResults() {
        result.results_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionReduceResponse)
    }
    
    static {
      defaultInstance = new TransactionReduceResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionReduceResponse)
  }
  
  public static final class TransactionPrepareRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareRequest.newBuilder() to construct.
    private TransactionPrepareRequest() {
      initFields();
    }
    private TransactionPrepareRequest(boolean noInit) {}
    
    private static final TransactionPrepareRequest defaultInstance;
    public static TransactionPrepareRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
      
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareRequest result;
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareRequest)
    }
    
    static {
      defaultInstance = new TransactionPrepareRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareRequest)
  }
  
  public static final class TransactionPrepareResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionPrepareResponse.newBuilder() to construct.
    private TransactionPrepareResponse() {
      initFields();
    }
    private TransactionPrepareResponse(boolean noInit) {}
    
    private static final TransactionPrepareResponse defaultInstance;
    public static TransactionPrepareResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionPrepareResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.ByteString data,
      }
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionPrepareResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionPrepareResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionPrepareResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionPrepareResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionPrepareResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionPrepareResponse();
        return this;
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionPrepareResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionPrepareResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionPrepareResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionPrepareResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionPrepareResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionPrepareResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionPrepareResponse)
    }
    
    static {
      defaultInstance = new TransactionPrepareResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionPrepareResponse)
  }
  
  public static final class TransactionFinishRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishRequest.newBuilder() to construct.
    private TransactionFinishRequest() {
      initFields();
    }
    private TransactionFinishRequest(boolean noInit) {}
    
    private static final TransactionFinishRequest defaultInstance;
    public static TransactionFinishRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required .edu.brown.hstore.Status status = 3;
    public static final int STATUS_FIELD_NUMBER = 3;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasStatus()) {
        output.writeEnum(3, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 3;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishRequest)
    }
    
    static {
      defaultInstance = new TransactionFinishRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishRequest)
  }
  
  public static final class TransactionFinishResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionFinishResponse.newBuilder() to construct.
    private TransactionFinishResponse() {
      initFields();
    }
    private TransactionFinishResponse(boolean noInit) {}
    
    private static final TransactionFinishResponse defaultInstance;
    public static TransactionFinishResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionFinishResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        byte[] data,
      
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionFinishResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionFinishResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionFinishResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionFinishResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionFinishResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionFinishResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
      }
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionFinishResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionFinishResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.TransactionFinishResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionFinishResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionFinishResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionFinishResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      }
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionFinishResponse)
    }
    
    static {
      defaultInstance = new TransactionFinishResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionFinishResponse)
  }
  
  public static final class TransactionRedirectRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectRequest.newBuilder() to construct.
    private TransactionRedirectRequest() {
      initFields();
    }
    private TransactionRedirectRequest(boolean noInit) {}
    
    private static final TransactionRedirectRequest defaultInstance;
    public static TransactionRedirectRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes work = 2;
    public static final int WORK_FIELD_NUMBER = 2;
    private boolean hasWork;
    private com.google.protobuf.ByteString work_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasWork() { return hasWork; }
    public com.google.protobuf.ByteString getWork() { return work_; }
    
    // optional int64 orig_txn_id = 3;
    public static final int ORIG_TXN_ID_FIELD_NUMBER = 3;
    private boolean hasOrigTxnId;
    private long origTxnId_ = 0L;
    public boolean hasOrigTxnId() { return hasOrigTxnId; }
    public long getOrigTxnId() { return origTxnId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasWork) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasWork()) {
        output.writeBytes(2, getWork());
      }
      if (hasOrigTxnId()) {
        output.writeInt64(3, getOrigTxnId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasWork()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getWork());
      }
      if (hasOrigTxnId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getOrigTxnId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectRequest other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasWork()) {
          setWork(other.getWork());
        }
        if (other.hasOrigTxnId()) {
          setOrigTxnId(other.getOrigTxnId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setWork(input.readBytes());
              break;
            }
            case 24: {
              setOrigTxnId(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes work = 2;
      public boolean hasWork() {
        return result.hasWork();
      }
      public com.google.protobuf.ByteString getWork() {
        return result.getWork();
      }
      public Builder setWork(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasWork = true;
        result.work_ = value;
        return this;
      }
      public Builder clearWork() {
        result.hasWork = false;
        result.work_ = getDefaultInstance().getWork();
        return this;
      }
      
      // optional int64 orig_txn_id = 3;
      public boolean hasOrigTxnId() {
        return result.hasOrigTxnId();
      }
      public long getOrigTxnId() {
        return result.getOrigTxnId();
      }
      public Builder setOrigTxnId(long value) {
        result.hasOrigTxnId = true;
        result.origTxnId_ = value;
        return this;
      }
      public Builder clearOrigTxnId() {
        result.hasOrigTxnId = false;
        result.origTxnId_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectRequest)
    }
    
    static {
      defaultInstance = new TransactionRedirectRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectRequest)
  }
  
  public static final class TransactionRedirectResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TransactionRedirectResponse.newBuilder() to construct.
    private TransactionRedirectResponse() {
      initFields();
    }
    private TransactionRedirectResponse(boolean noInit) {}
    
    private static final TransactionRedirectResponse defaultInstance;
    public static TransactionRedirectResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TransactionRedirectResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required bytes output = 2;
    public static final int OUTPUT_FIELD_NUMBER = 2;
    private boolean hasOutput;
    private com.google.protobuf.ByteString output_ = com.google.protobuf.ByteString.EMPTY;
    public boolean hasOutput() { return hasOutput; }
    public com.google.protobuf.ByteString getOutput() { return output_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasOutput) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasOutput()) {
        output.writeBytes(2, getOutput());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasOutput()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getOutput());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TransactionRedirectResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TransactionRedirectResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TransactionRedirectResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TransactionRedirectResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TransactionRedirectResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TransactionRedirectResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TransactionRedirectResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TransactionRedirectResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TransactionRedirectResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TransactionRedirectResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TransactionRedirectResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TransactionRedirectResponse other) {
        if (other == edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasOutput()) {
          setOutput(other.getOutput());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 18: {
              setOutput(input.readBytes());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required bytes output = 2;
      public boolean hasOutput() {
        return result.hasOutput();
      }
      public com.google.protobuf.ByteString getOutput() {
        return result.getOutput();
      }
      public Builder setOutput(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  result.hasOutput = true;
        result.output_ = value;
        return this;
      }
      public Builder clearOutput() {
        result.hasOutput = false;
        result.output_ = getDefaultInstance().getOutput();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TransactionRedirectResponse)
    }
    
    static {
      defaultInstance = new TransactionRedirectResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TransactionRedirectResponse)
  }
  
  public static final class SendDataRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataRequest.newBuilder() to construct.
    private SendDataRequest() {
      initFields();
    }
    private SendDataRequest(boolean noInit) {}
    
    private static final SendDataRequest defaultInstance;
    public static SendDataRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
    public static final int FRAGMENTS_FIELD_NUMBER = 2;
    private java.util.List fragments_ =
      java.util.Collections.emptyList();
    public java.util.List getFragmentsList() {
      return fragments_;
    }
    public int getFragmentsCount() { return fragments_.size(); }
    public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
      return fragments_.get(index);
    }
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        if (!element.isInitialized()) return false;
      }
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        output.writeMessage(2, element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      for (edu.brown.hstore.Hstore.PartitionFragment element : getFragmentsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, element);
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataRequest result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.fragments_ != java.util.Collections.EMPTY_LIST) {
          result.fragments_ =
            java.util.Collections.unmodifiableList(result.fragments_);
        }
        edu.brown.hstore.Hstore.SendDataRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataRequest other) {
        if (other == edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.fragments_.isEmpty()) {
          if (result.fragments_.isEmpty()) {
            result.fragments_ = new java.util.ArrayList();
          }
          result.fragments_.addAll(other.fragments_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 18: {
              edu.brown.hstore.Hstore.PartitionFragment.Builder subBuilder = edu.brown.hstore.Hstore.PartitionFragment.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addFragments(subBuilder.buildPartial());
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated .edu.brown.hstore.PartitionFragment fragments = 2;
      public java.util.List getFragmentsList() {
        return java.util.Collections.unmodifiableList(result.fragments_);
      }
      public int getFragmentsCount() {
        return result.getFragmentsCount();
      }
      public edu.brown.hstore.Hstore.PartitionFragment getFragments(int index) {
        return result.getFragments(index);
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.fragments_.set(index, value);
        return this;
      }
      public Builder setFragments(int index, edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        result.fragments_.set(index, builderForValue.build());
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(value);
        return this;
      }
      public Builder addFragments(edu.brown.hstore.Hstore.PartitionFragment.Builder builderForValue) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        result.fragments_.add(builderForValue.build());
        return this;
      }
      public Builder addAllFragments(
          java.lang.Iterable values) {
        if (result.fragments_.isEmpty()) {
          result.fragments_ = new java.util.ArrayList();
        }
        super.addAll(values, result.fragments_);
        return this;
      }
      public Builder clearFragments() {
        result.fragments_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataRequest)
    }
    
    static {
      defaultInstance = new SendDataRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataRequest)
  }
  
  public static final class SendDataResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use SendDataResponse.newBuilder() to construct.
    private SendDataResponse() {
      initFields();
    }
    private SendDataResponse(boolean noInit) {}
    
    private static final SendDataResponse defaultInstance;
    public static SendDataResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public SendDataResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
    }
    
    // required int64 transaction_id = 1;
    public static final int TRANSACTION_ID_FIELD_NUMBER = 1;
    private boolean hasTransactionId;
    private long transactionId_ = 0L;
    public boolean hasTransactionId() { return hasTransactionId; }
    public long getTransactionId() { return transactionId_; }
    
    // repeated int32 partitions = 2 [packed = true];
    public static final int PARTITIONS_FIELD_NUMBER = 2;
    private java.util.List partitions_ =
      java.util.Collections.emptyList();
    public java.util.List getPartitionsList() {
      return partitions_;
    }
    public int getPartitionsCount() { return partitions_.size(); }
    public int getPartitions(int index) {
      return partitions_.get(index);
    }
    private int partitionsMemoizedSerializedSize = -1;
    
    // required int32 sender_id = 3;
    public static final int SENDER_ID_FIELD_NUMBER = 3;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required .edu.brown.hstore.Status status = 4;
    public static final int STATUS_FIELD_NUMBER = 4;
    private boolean hasStatus;
    private edu.brown.hstore.Hstore.Status status_;
    public boolean hasStatus() { return hasStatus; }
    public edu.brown.hstore.Hstore.Status getStatus() { return status_; }
    
    private void initFields() {
      status_ = edu.brown.hstore.Hstore.Status.OK;
    }
    public final boolean isInitialized() {
      if (!hasTransactionId) return false;
      if (!hasSenderId) return false;
      if (!hasStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasTransactionId()) {
        output.writeInt64(1, getTransactionId());
      }
      if (getPartitionsList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(partitionsMemoizedSerializedSize);
      }
      for (int element : getPartitionsList()) {
        output.writeInt32NoTag(element);
      }
      if (hasSenderId()) {
        output.writeInt32(3, getSenderId());
      }
      if (hasStatus()) {
        output.writeEnum(4, getStatus().getNumber());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasTransactionId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, getTransactionId());
      }
      {
        int dataSize = 0;
        for (int element : getPartitionsList()) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(element);
        }
        size += dataSize;
        if (!getPartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        partitionsMemoizedSerializedSize = dataSize;
      }
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, getSenderId());
      }
      if (hasStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, getStatus().getNumber());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.SendDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.SendDataResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.SendDataResponse result;
      
      // Construct using edu.brown.hstore.Hstore.SendDataResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.SendDataResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.SendDataResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.SendDataResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.SendDataResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.SendDataResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.SendDataResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.partitions_ != java.util.Collections.EMPTY_LIST) {
          result.partitions_ =
            java.util.Collections.unmodifiableList(result.partitions_);
        }
        edu.brown.hstore.Hstore.SendDataResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.SendDataResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.SendDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.SendDataResponse other) {
        if (other == edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()) return this;
        if (other.hasTransactionId()) {
          setTransactionId(other.getTransactionId());
        }
        if (!other.partitions_.isEmpty()) {
          if (result.partitions_.isEmpty()) {
            result.partitions_ = new java.util.ArrayList();
          }
          result.partitions_.addAll(other.partitions_);
        }
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasStatus()) {
          setStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
      }
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setTransactionId(input.readInt64());
              break;
            }
            case 16: {
              addPartitions(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPartitions(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              setSenderId(input.readInt32());
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              edu.brown.hstore.Hstore.Status value = edu.brown.hstore.Hstore.Status.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                setStatus(value);
              }
              break;
            }
          }
        }
      }
      
      
      // required int64 transaction_id = 1;
      public boolean hasTransactionId() {
        return result.hasTransactionId();
      }
      public long getTransactionId() {
        return result.getTransactionId();
      }
      public Builder setTransactionId(long value) {
        result.hasTransactionId = true;
        result.transactionId_ = value;
        return this;
      }
      public Builder clearTransactionId() {
        result.hasTransactionId = false;
        result.transactionId_ = 0L;
        return this;
      }
      
      // repeated int32 partitions = 2 [packed = true];
      public java.util.List getPartitionsList() {
        return java.util.Collections.unmodifiableList(result.partitions_);
      }
      public int getPartitionsCount() {
        return result.getPartitionsCount();
      }
      public int getPartitions(int index) {
        return result.getPartitions(index);
      }
      public Builder setPartitions(int index, int value) {
        result.partitions_.set(index, value);
        return this;
      }
      public Builder addPartitions(int value) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        result.partitions_.add(value);
        return this;
      }
      public Builder addAllPartitions(
          java.lang.Iterable values) {
        if (result.partitions_.isEmpty()) {
          result.partitions_ = new java.util.ArrayList();
        }
        super.addAll(values, result.partitions_);
        return this;
      public Builder clearPartitions() {
        result.partitions_ = java.util.Collections.emptyList();
        return this;
      }
      
      // required int32 sender_id = 3;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required .edu.brown.hstore.Status status = 4;
      public boolean hasStatus() {
        return result.hasStatus();
      }
      public edu.brown.hstore.Hstore.Status getStatus() {
        return result.getStatus();
      }
      public Builder setStatus(edu.brown.hstore.Hstore.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasStatus = true;
        result.status_ = value;
        return this;
      }
      public Builder clearStatus() {
        result.hasStatus = false;
        result.status_ = edu.brown.hstore.Hstore.Status.OK;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.SendDataResponse)
    }
    
    static {
      defaultInstance = new SendDataResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.SendDataResponse)
  }
  
  public static final class ShutdownRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownRequest.newBuilder() to construct.
    private ShutdownRequest() {
      initFields();
    }
    private ShutdownRequest(boolean noInit) {}
    
    private static final ShutdownRequest defaultInstance;
    public static ShutdownRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int32 exit_status = 2;
    public static final int EXIT_STATUS_FIELD_NUMBER = 2;
    private boolean hasExitStatus;
    private int exitStatus_ = 0;
    public boolean hasExitStatus() { return hasExitStatus; }
    public int getExitStatus() { return exitStatus_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasExitStatus) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasExitStatus()) {
        output.writeInt32(2, getExitStatus());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasExitStatus()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, getExitStatus());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownRequest result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownRequest returnMe = result;
        result = null;
        return returnMe;
      }
        return this;
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownRequest other) {
        if (other == edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasExitStatus()) {
          setExitStatus(other.getExitStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setExitStatus(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int32 exit_status = 2;
      public boolean hasExitStatus() {
        return result.hasExitStatus();
      }
      public int getExitStatus() {
        return result.getExitStatus();
      }
      public Builder setExitStatus(int value) {
        result.hasExitStatus = true;
        result.exitStatus_ = value;
        return this;
      }
      public Builder clearExitStatus() {
        result.hasExitStatus = false;
        result.exitStatus_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownRequest)
    }
    
    static {
      defaultInstance = new ShutdownRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownRequest)
  }
  
  public static final class ShutdownResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use ShutdownResponse.newBuilder() to construct.
    private ShutdownResponse() {
      initFields();
    }
    private ShutdownResponse(boolean noInit) {}
    
    private static final ShutdownResponse defaultInstance;
    public static ShutdownResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShutdownResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.ShutdownResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.ShutdownResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.ShutdownResponse result;
      
      // Construct using edu.brown.hstore.Hstore.ShutdownResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.ShutdownResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.ShutdownResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.ShutdownResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.ShutdownResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.ShutdownResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.ShutdownResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.ShutdownResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.ShutdownResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.ShutdownResponse other) {
        if (other == edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.ShutdownResponse)
    }
    
    static {
      defaultInstance = new ShutdownResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.ShutdownResponse)
  }
  
  public static final class TimeSyncRequest extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncRequest.newBuilder() to construct.
    private TimeSyncRequest() {
      initFields();
    }
    private TimeSyncRequest(boolean noInit) {}
    
    private static final TimeSyncRequest defaultInstance;
    public static TimeSyncRequest getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncRequest getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncRequest result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncRequest.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncRequest internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncRequest();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncRequest build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncRequest buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncRequest buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncRequest returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncRequest) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncRequest other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
      initFields();
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncRequest)
    }
    
    static {
      defaultInstance = new TimeSyncRequest(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncRequest)
  }
  
  public static final class TimeSyncResponse extends
      com.google.protobuf.GeneratedMessage {
    // Use TimeSyncResponse.newBuilder() to construct.
    private TimeSyncResponse() {
    }
    private TimeSyncResponse(boolean noInit) {}
    
    private static final TimeSyncResponse defaultInstance;
    public static TimeSyncResponse getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeSyncResponse getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.brown.hstore.Hstore.internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
    }
    
    // required int32 sender_id = 1;
    public static final int SENDER_ID_FIELD_NUMBER = 1;
    private boolean hasSenderId;
    private int senderId_ = 0;
    public boolean hasSenderId() { return hasSenderId; }
    public int getSenderId() { return senderId_; }
    
    // required int64 t0_s = 2;
    public static final int T0_S_FIELD_NUMBER = 2;
    private boolean hasT0S;
    private long t0S_ = 0L;
    public boolean hasT0S() { return hasT0S; }
    public long getT0S() { return t0S_; }
    
    // required int64 t0_r = 3;
    public static final int T0_R_FIELD_NUMBER = 3;
    private boolean hasT0R;
    private long t0R_ = 0L;
    public boolean hasT0R() { return hasT0R; }
    public long getT0R() { return t0R_; }
    
    // required int64 t1_s = 4;
    public static final int T1_S_FIELD_NUMBER = 4;
    private boolean hasT1S;
    private long t1S_ = 0L;
    public boolean hasT1S() { return hasT1S; }
    public long getT1S() { return t1S_; }
    
    private void initFields() {
    }
    public final boolean isInitialized() {
      if (!hasSenderId) return false;
      if (!hasT0S) return false;
      if (!hasT0R) return false;
      if (!hasT1S) return false;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasSenderId()) {
        output.writeInt32(1, getSenderId());
      }
      if (hasT0S()) {
        output.writeInt64(2, getT0S());
      }
      if (hasT0R()) {
        output.writeInt64(3, getT0R());
      }
      if (hasT1S()) {
        output.writeInt64(4, getT1S());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (hasSenderId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getSenderId());
      }
      if (hasT0S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, getT0S());
      }
      if (hasT0R()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, getT0R());
      }
      if (hasT1S()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, getT1S());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.brown.hstore.Hstore.TimeSyncResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.brown.hstore.Hstore.TimeSyncResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder {
      private edu.brown.hstore.Hstore.TimeSyncResponse result;
      
      // Construct using edu.brown.hstore.Hstore.TimeSyncResponse.newBuilder()
      private Builder() {}
      
      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return builder;
      }
      
      protected edu.brown.hstore.Hstore.TimeSyncResponse internalGetResult() {
        return result;
      }
      
      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new edu.brown.hstore.Hstore.TimeSyncResponse();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(result);
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDescriptor();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse getDefaultInstanceForType() {
        return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
      }
      
      public boolean isInitialized() {
        return result.isInitialized();
      }
      public edu.brown.hstore.Hstore.TimeSyncResponse build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }
      
      private edu.brown.hstore.Hstore.TimeSyncResponse buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }
      
      public edu.brown.hstore.Hstore.TimeSyncResponse buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        edu.brown.hstore.Hstore.TimeSyncResponse returnMe = result;
        result = null;
        return returnMe;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.brown.hstore.Hstore.TimeSyncResponse) {
          return mergeFrom((edu.brown.hstore.Hstore.TimeSyncResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.brown.hstore.Hstore.TimeSyncResponse other) {
        if (other == edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()) return this;
        if (other.hasSenderId()) {
          setSenderId(other.getSenderId());
        }
        if (other.hasT0S()) {
          setT0S(other.getT0S());
        }
        if (other.hasT0R()) {
          setT0R(other.getT0R());
        }
        if (other.hasT1S()) {
          setT1S(other.getT1S());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                return this;
              }
              break;
            }
            case 8: {
              setSenderId(input.readInt32());
              break;
            }
            case 16: {
              setT0S(input.readInt64());
              break;
            }
            case 24: {
              setT0R(input.readInt64());
              break;
            }
            case 32: {
              setT1S(input.readInt64());
              break;
            }
          }
        }
      }
      
      
      // required int32 sender_id = 1;
      public boolean hasSenderId() {
        return result.hasSenderId();
      }
      public int getSenderId() {
        return result.getSenderId();
      }
      public Builder setSenderId(int value) {
        result.hasSenderId = true;
        result.senderId_ = value;
        return this;
      }
      public Builder clearSenderId() {
        result.hasSenderId = false;
        result.senderId_ = 0;
        return this;
      }
      
      // required int64 t0_s = 2;
      public boolean hasT0S() {
        return result.hasT0S();
      }
      public long getT0S() {
        return result.getT0S();
      }
      public Builder setT0S(long value) {
        result.hasT0S = true;
        result.t0S_ = value;
        return this;
      }
      public Builder clearT0S() {
        result.hasT0S = false;
        result.t0S_ = 0L;
        return this;
      }
      
      // required int64 t0_r = 3;
      public boolean hasT0R() {
        return result.hasT0R();
      }
      public long getT0R() {
        return result.getT0R();
      }
      public Builder setT0R(long value) {
        result.hasT0R = true;
        result.t0R_ = value;
        return this;
      }
      public Builder clearT0R() {
        result.hasT0R = false;
        result.t0R_ = 0L;
        return this;
      }
      
      // required int64 t1_s = 4;
      public boolean hasT1S() {
        return result.hasT1S();
      }
      public long getT1S() {
        return result.getT1S();
      }
      public Builder setT1S(long value) {
        result.hasT1S = true;
        result.t1S_ = value;
        return this;
      }
      public Builder clearT1S() {
        result.hasT1S = false;
        result.t1S_ = 0L;
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:edu.brown.hstore.TimeSyncResponse)
    }
    
    static {
      defaultInstance = new TimeSyncResponse(true);
      edu.brown.hstore.Hstore.internalForceInit();
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:edu.brown.hstore.TimeSyncResponse)
  }
  
  public static abstract class HStoreService
      implements com.google.protobuf.Service {
    protected HStoreService() {}
    
    public interface Interface {
      public abstract void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done);
      
      public abstract void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done);
      
    }
    
    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new HStoreService() {
        @Override
        public  void transactionInit(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionInitRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionInit(controller, request, done);
        }
        
        @Override
        public  void transactionWork(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionWorkRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionWork(controller, request, done);
        }
        
        @Override
        public  void transactionMap(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionMapRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionMap(controller, request, done);
        }
        
        @Override
        public  void transactionReduce(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionReduceRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionReduce(controller, request, done);
        }
        
        @Override
        public  void transactionPrepare(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionPrepareRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionPrepare(controller, request, done);
        }
        
        @Override
        public  void transactionFinish(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionFinishRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionFinish(controller, request, done);
        }
        
        @Override
        public  void transactionRedirect(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TransactionRedirectRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.transactionRedirect(controller, request, done);
        }
        
        @Override
        public  void sendData(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.SendDataRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.sendData(controller, request, done);
        }
        
        @Override
        public  void shutdown(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.ShutdownRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.shutdown(controller, request, done);
        }
        
        @Override
        public  void timeSync(
            com.google.protobuf.RpcController controller,
            edu.brown.hstore.Hstore.TimeSyncRequest request,
            com.google.protobuf.RpcCallback done) {
          impl.timeSync(controller, request, done);
        }
        
      };
    }
    
    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        
        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request);
            case 1:
              return impl.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request);
            case 2:
              return impl.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request);
            case 3:
              return impl.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request);
            case 4:
              return impl.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request);
            case 5:
              return impl.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request);
            case 6:
              return impl.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request);
            case 7:
              return impl.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request);
            case 8:
              return impl.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request);
            case 9:
              return impl.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
            case 1:
              return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
            case 2:
              return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
            case 3:
              return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
            case 4:
              return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
            case 5:
              return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
            case 6:
              return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
            case 7:
              return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
            case 8:
              return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
            case 9:
              return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }
        
      };
    }
    
    public abstract void transactionInit(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionInitRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionWork(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionWorkRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionMap(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionMapRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionReduce(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionReduceRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionPrepare(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionPrepareRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionFinish(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionFinishRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void transactionRedirect(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TransactionRedirectRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void sendData(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.SendDataRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void shutdown(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.ShutdownRequest request,
        com.google.protobuf.RpcCallback done);
    
    public abstract void timeSync(
        com.google.protobuf.RpcController controller,
        edu.brown.hstore.Hstore.TimeSyncRequest request,
        com.google.protobuf.RpcCallback done);
    
    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return edu.brown.hstore.Hstore.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    
    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
      }
    }
          this.transactionInit(controller, (edu.brown.hstore.Hstore.TransactionInitRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 1:
          this.transactionWork(controller, (edu.brown.hstore.Hstore.TransactionWorkRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 2:
          this.transactionMap(controller, (edu.brown.hstore.Hstore.TransactionMapRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 3:
        case 3:
          this.transactionReduce(controller, (edu.brown.hstore.Hstore.TransactionReduceRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 4:
          this.transactionPrepare(controller, (edu.brown.hstore.Hstore.TransactionPrepareRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 5:
          this.transactionFinish(controller, (edu.brown.hstore.Hstore.TransactionFinishRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 6:
          this.transactionRedirect(controller, (edu.brown.hstore.Hstore.TransactionRedirectRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 7:
          this.sendData(controller, (edu.brown.hstore.Hstore.SendDataRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 8:
          this.shutdown(controller, (edu.brown.hstore.Hstore.ShutdownRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        case 9:
          this.timeSync(controller, (edu.brown.hstore.Hstore.TimeSyncRequest)request,
            com.google.protobuf.RpcUtil.specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitRequest.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkRequest.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapRequest.getDefaultInstance();
        case 3:
          return edu.brown.hstore.Hstore.TransactionReduceRequest.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareRequest.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishRequest.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectRequest.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataRequest.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownRequest.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
    
    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance();
        case 1:
          return edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance();
        case 2:
          return edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance();
          return edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance();
        case 4:
          return edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance();
        case 5:
          return edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance();
        case 6:
          return edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance();
        case 7:
          return edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance();
        case 8:
          return edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance();
        case 9:
          return edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }
    
    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }
    
    public static final class Stub extends edu.brown.hstore.Hstore.HStoreService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.RpcChannel channel;
      
      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }
      
      public  void transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionInitResponse.class,
            edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance()));
      }
      
      public  void transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionWorkResponse.class,
            edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance()));
      }
      
      public  void transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionMapResponse.class,
            edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance()));
      }
      
      public  void transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionReduceResponse.class,
            edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance()));
      }
      
      public  void transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
            edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance()));
      }
      
      public  void transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionFinishResponse.class,
            edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance()));
      }
      
      public  void transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.class,
            edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance()));
      }
      
      public  void sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.SendDataResponse.class,
            edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance()));
      }
      
      public  void shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.ShutdownResponse.class,
            edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance()));
      }
      
      public  void timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request,
          com.google.protobuf.RpcCallback done) {
        channel.callMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            edu.brown.hstore.Hstore.TimeSyncResponse.class,
            edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance()));
      }
    }
    
    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }
    
    public interface BlockingInterface {
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException;
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException;
    }
    
    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }
      
      private final com.google.protobuf.BlockingRpcChannel channel;
      
      public edu.brown.hstore.Hstore.TransactionInitResponse transactionInit(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionInitRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionInitResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionInitResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionWorkResponse transactionWork(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionWorkRequest request)
  private static
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionWorkResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionWorkResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionMapResponse transactionMap(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionMapRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionMapResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionMapResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionReduceResponse transactionReduce(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionReduceRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionReduceResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionReduceResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionPrepareResponse transactionPrepare(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionPrepareRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionPrepareResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(4),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionPrepareResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionFinishResponse transactionFinish(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionFinishRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionFinishResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(5),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionFinishResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TransactionRedirectResponse transactionRedirect(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TransactionRedirectRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TransactionRedirectResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(6),
          controller,
          request,
          edu.brown.hstore.Hstore.TransactionRedirectResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.SendDataResponse sendData(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.SendDataRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.SendDataResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(7),
          controller,
          request,
          edu.brown.hstore.Hstore.SendDataResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.ShutdownResponse shutdown(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.ShutdownRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.ShutdownResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(8),
          controller,
          request,
          edu.brown.hstore.Hstore.ShutdownResponse.getDefaultInstance());
      }
      
      
      public edu.brown.hstore.Hstore.TimeSyncResponse timeSync(
          com.google.protobuf.RpcController controller,
          edu.brown.hstore.Hstore.TimeSyncRequest request)
          throws com.google.protobuf.ServiceException {
        return (edu.brown.hstore.Hstore.TimeSyncResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(9),
          controller,
          request,
          edu.brown.hstore.Hstore.TimeSyncResponse.getDefaultInstance());
      }
      
    }
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_Dependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionInitResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_InputDependency_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkRequest_PartitionFragment_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionWorkResponse_PartitionResult_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionMapResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionMapResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceRequest_descriptor;
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionReduceResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionReduceResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_SendDataResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_SendDataResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_ShutdownResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_edu_brown_hstore_TimeSyncResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_edu_brown_hstore_TimeSyncResponse_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\035edu/brown/hstore/hstore.proto\022\020edu.bro" +
      "wn.hstore\032$ca/evanjones/protorpc/Protoco" +
      "l.proto\"7\n\021PartitionFragment\022\024\n\014partitio" +
      "n_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\"u\n\017PartitionRes" +
      "ult\022\024\n\014partition_id\030\001 \002(\005\022\014\n\004data\030\002 \002(\014\022" +
      "(\n\006status\030\003 \002(\0162\030.edu.brown.hstore.Statu" +
      "s\022\024\n\005error\030\004 \001(\010:\005false\"&\n\nDependency\022\n\n" +
      "\002id\030\001 \002(\005\022\014\n\004data\030\002 \003(\014\"H\n\026TransactionIn" +
      "itRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\"\254\001\n\027TransactionInitRes",
      "ponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartiti" +
      "ons\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.brow" +
      "n.hstore.Status\022\030\n\020reject_partition\030\004 \001(" +
      "\005\022\035\n\025reject_transaction_id\030\005 \001(\003\"\303\004\n\026Tra" +
      "nsactionWorkRequest\022\026\n\016transaction_id\030\001 " +
      "\002(\003\022\030\n\020source_partition\030\002 \002(\005\022M\n\tfragmen" +
      "ts\030\003 \003(\0132:.edu.brown.hstore.TransactionW" +
      "orkRequest.PartitionFragment\022\026\n\007sysproc\030" +
      "\004 \002(\010:\005false\022\026\n\016parameter_sets\030\005 \003(\014\022.\n\010" +
      "attached\030\006 \003(\0132\034.edu.brown.hstore.Depend",
      "ency\022\032\n\016done_partition\030\007 \003(\005B\002\020\001\032\036\n\017Inpu" +
      "tDependency\022\013\n\003ids\030\001 \003(\005\032\213\002\n\021PartitionFr" +
      "agment\022\024\n\014partition_id\030\001 \002(\005\022\027\n\013fragment" +
      "_id\030\002 \003(\005B\002\020\001\022N\n\014input_dep_id\030\003 \003(\01328.ed" +
      "u.brown.hstore.TransactionWorkRequest.In" +
      "putDependency\022\031\n\routput_dep_id\030\004 \003(\005B\002\020\001" +
      "\022\026\n\nstmt_index\030\005 \003(\005B\002\020\001\022\021\n\tread_only\030\006 " +
      "\002(\010\022\023\n\013needs_input\030\007 \002(\010\022\034\n\rlast_fragmen" +
      "t\030\010 \001(\010:\005false\"\270\002\n\027TransactionWorkRespon" +
      "se\022\026\n\016transaction_id\030\001 \002(\003\022J\n\007results\030\002 ",
      "\003(\01329.edu.brown.hstore.TransactionWorkRe" +
      "sponse.PartitionResult\022(\n\006status\030\003 \002(\0162\030" +
      ".edu.brown.hstore.Status\032\216\001\n\017PartitionRe" +
      "sult\022\024\n\014partition_id\030\001 \002(\005\022,\n\006output\030\002 \003" +
      "(\0132\034.edu.brown.hstore.Dependency\022(\n\006stat" +
      "us\030\003 \002(\0162\030.edu.brown.hstore.Status\022\r\n\005er" +
      "ror\030\004 \001(\014\"[\n\025TransactionMapRequest\022\026\n\016tr" +
      "ansaction_id\030\001 \002(\003\022\026\n\016base_partition\030\002 \002" +
      "(\005\022\022\n\ninvocation\030\003 \002(\014\"r\n\026TransactionMap" +
      "Response\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npart",
      "itions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.b" +
      "rown.hstore.Status\"^\n\030TransactionReduceR" +
      "equest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\016base_p" +
      "artition\030\002 \002(\005\022\022\n\ninvocation\030\003 \002(\014\"\221\001\n\031T" +
      "ransactionReduceResponse\022\026\n\016transaction_" +
      "id\030\001 \002(\003\0222\n\007results\030\002 \003(\0132!.edu.brown.hs" +
      "tore.PartitionResult\022(\n\006status\030\003 \002(\0162\030.e" +
      "du.brown.hstore.Status\"K\n\031TransactionPre" +
      "pareRequest\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\np" +
      "artitions\030\002 \003(\005B\002\020\001\"v\n\032TransactionPrepar",
      "eResponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npar" +
      "titions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu." +
      "brown.hstore.Status\"t\n\030TransactionFinish" +
      "Request\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\nparti" +
      "tions\030\002 \003(\005B\002\020\001\022(\n\006status\030\003 \002(\0162\030.edu.br" +
      "own.hstore.Status\"K\n\031TransactionFinishRe" +
      "sponse\022\026\n\016transaction_id\030\001 \002(\003\022\026\n\npartit" +
      "ions\030\002 \003(\005B\002\020\001\"R\n\032TransactionRedirectReq" +
      "uest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004work\030\002 \002(\014\022\023\n" +
      "\013orig_txn_id\030\003 \001(\003\"@\n\033TransactionRedirec",
      "tResponse\022\021\n\tsender_id\030\001 \002(\005\022\016\n\006output\030\002" +
      " \002(\014\"t\n\017SendDataRequest\022\026\n\016transaction_i" +
      "d\030\001 \002(\003\0226\n\tfragments\030\002 \003(\0132#.edu.brown.h" +
      "store.PartitionFragment\022\021\n\tsender_id\030\003 \002" +
      "(\005\"\177\n\020SendDataResponse\022\026\n\016transaction_id" +
      "\030\001 \002(\003\022\026\n\npartitions\030\002 \003(\005B\002\020\001\022\021\n\tsender" +
      "_id\030\003 \002(\005\022(\n\006status\030\004 \002(\0162\030.edu.brown.hs" +
      "tore.Status\"9\n\017ShutdownRequest\022\021\n\tsender" +
      "_id\030\001 \002(\005\022\023\n\013exit_status\030\002 \002(\005\"%\n\020Shutdo" +
      "wnResponse\022\021\n\tsender_id\030\001 \002(\005\"2\n\017TimeSyn",
      "cRequest\022\021\n\tsender_id\030\001 \002(\005\022\014\n\004t0_s\030\002 \002(" +
      "\003\"O\n\020TimeSyncResponse\022\021\n\tsender_id\030\001 \002(\005" +
      "\022\014\n\004t0_s\030\002 \002(\003\022\014\n\004t0_r\030\003 \002(\003\022\014\n\004t1_s\030\004 \002" +
      "(\003*\265\001\n\006Status\022\006\n\002OK\020\000\022\016\n\nABORT_USER\020\001\022\022\n" +
      "\016ABORT_GRACEFUL\020\002\022\024\n\020ABORT_UNEXPECTED\020\003\022" +
      "\031\n\025ABORT_CONNECTION_LOST\020\004\022\024\n\020ABORT_MISP" +
      "REDICT\020\005\022\021\n\rABORT_RESTART\020\006\022\020\n\014ABORT_REJ" +
      "ECT\020\007\022\023\n\017ABORT_THROTTLED\020\0102\376\007\n\rHStoreSer" +
      "vice\022f\n\017TransactionInit\022(.edu.brown.hsto" +
      "re.TransactionInitRequest\032).edu.brown.hs",
      "tore.TransactionInitResponse\022f\n\017Transact" +
      "ionWork\022(.edu.brown.hstore.TransactionWo" +
      "rkRequest\032).edu.brown.hstore.Transaction" +
      "WorkResponse\022c\n\016TransactionMap\022\'.edu.bro" +
      "wn.hstore.TransactionMapRequest\032(.edu.br" +
      "own.hstore.TransactionMapResponse\022l\n\021Tra" +
      "nsactionReduce\022*.edu.brown.hstore.Transa" +
      "ctionReduceRequest\032+.edu.brown.hstore.Tr" +
      "ansactionReduceResponse\022o\n\022TransactionPr" +
      "epare\022+.edu.brown.hstore.TransactionPrep",
      "areRequest\032,.edu.brown.hstore.Transactio" +
      "nPrepareResponse\022l\n\021TransactionFinish\022*." +
      "edu.brown.hstore.TransactionFinishReques" +
      "t\032+.edu.brown.hstore.TransactionFinishRe" +
      "sponse\022r\n\023TransactionRedirect\022,.edu.brow" +
      "n.hstore.TransactionRedirectRequest\032-.ed" +
      "u.brown.hstore.TransactionRedirectRespon" +
      "se\022Q\n\010SendData\022!.edu.brown.hstore.SendDa" +
      "taRequest\032\".edu.brown.hstore.SendDataRes" +
      "ponse\022Q\n\010Shutdown\022!.edu.brown.hstore.Shu",
      "tdownRequest\032\".edu.brown.hstore.Shutdown" +
      "Response\022Q\n\010TimeSync\022!.edu.brown.hstore." +
      "TimeSyncRequest\032\".edu.brown.hstore.TimeS" +
      "yncResponse"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Other
Chunk
Conflicting content
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
<<<<<<< HEAD
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(2);
=======
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(1);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
Solution content
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_edu_brown_hstore_PartitionFragment_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_edu_brown_hstore_PartitionFragment_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionFragment_descriptor,
              new java.lang.String[] { "PartitionId", "Data", },
              edu.brown.hstore.Hstore.PartitionFragment.class,
              edu.brown.hstore.Hstore.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_PartitionResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_edu_brown_hstore_PartitionResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_PartitionResult_descriptor,
              new java.lang.String[] { "PartitionId", "Data", "Status", "Error", },
              edu.brown.hstore.Hstore.PartitionResult.class,
              edu.brown.hstore.Hstore.PartitionResult.Builder.class);
          internal_static_edu_brown_hstore_Dependency_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_edu_brown_hstore_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_Dependency_descriptor,
              new java.lang.String[] { "Id", "Data", },
              edu.brown.hstore.Hstore.Dependency.class,
              edu.brown.hstore.Hstore.Dependency.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_edu_brown_hstore_TransactionInitRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Attribute
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(3);
=======
            getDescriptor().getMessageTypes().get(2);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionInitRequest.class,
              edu.brown.hstore.Hstore.TransactionInitRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionInitResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_edu_brown_hstore_TransactionInitResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionInitResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
            getDescriptor().getMessageTypes().get(4);
<<<<<<< HEAD
=======
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(3);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionInitResponse.class,
              edu.brown.hstore.Hstore.TransactionInitResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_edu_brown_hstore_TransactionWorkRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(5);
=======
            getDescriptor().getMessageTypes().get(4);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.class,
              edu.brown.hstore.Hstore.TransactionWorkRequest.PartitionFragment.Builder.class);
          internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_edu_brown_hstore_TransactionWorkResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionWorkResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(10);
=======
            getDescriptor().getMessageTypes().get(5);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionReduceResponse.class,
              edu.brown.hstore.Hstore.TransactionReduceResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_edu_brown_hstore_TransactionPrepareRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(11);
=======
            getDescriptor().getMessageTypes().get(6);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionPrepareRequest.class,
              edu.brown.hstore.Hstore.TransactionPrepareRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_edu_brown_hstore_TransactionPrepareResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionPrepareResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(12);
=======
            getDescriptor().getMessageTypes().get(7);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionPrepareResponse.class,
              edu.brown.hstore.Hstore.TransactionPrepareResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_edu_brown_hstore_TransactionFinishRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(13);
=======
            getDescriptor().getMessageTypes().get(8);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionFinishRequest.class,
              edu.brown.hstore.Hstore.TransactionFinishRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_edu_brown_hstore_TransactionFinishResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionFinishResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(14);
=======
            getDescriptor().getMessageTypes().get(9);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionFinishResponse.class,
              edu.brown.hstore.Hstore.TransactionFinishResponse.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_edu_brown_hstore_TransactionRedirectRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(15);
=======
            getDescriptor().getMessageTypes().get(10);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.TransactionRedirectRequest.class,
              edu.brown.hstore.Hstore.TransactionRedirectRequest.Builder.class);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_edu_brown_hstore_TransactionRedirectResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_TransactionRedirectResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(18);
=======
            getDescriptor().getMessageTypes().get(11);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
Solution content
              edu.brown.hstore.Hstore.SendDataResponse.class,
              edu.brown.hstore.Hstore.SendDataResponse.Builder.class);
          internal_static_edu_brown_hstore_ShutdownRequest_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_edu_brown_hstore_ShutdownRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownRequest_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
<<<<<<< HEAD
            getDescriptor().getMessageTypes().get(19);
=======
            getDescriptor().getMessageTypes().get(12);
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
Solution content
              edu.brown.hstore.Hstore.ShutdownRequest.class,
              edu.brown.hstore.Hstore.ShutdownRequest.Builder.class);
          internal_static_edu_brown_hstore_ShutdownResponse_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_edu_brown_hstore_ShutdownResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_edu_brown_hstore_ShutdownResponse_descriptor,
File
Hstore.java
Developer's decision
Manual
Kind of conflict
Method invocation
Chunk
Conflicting content
        this.args = new ParameterSet[] { VoltProcedure.getCleanParams(this.batch[0], raw_args) };
    }
    
<<<<<<< HEAD
    protected static int getLocalFragmentCount(Collection ftasks, int base_partition) {
=======
    protected int getLocalFragmentCount(Collection ftasks, int base_partition) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        int cnt = 0;
        for (PartitionFragment ftask : ftasks) {
            if (ftask.getPartitionId() == base_partition) cnt++;
Solution content
        this.args = new ParameterSet[] { VoltProcedure.getCleanParams(this.batch[0], raw_args) };
    }
    
    protected static int getLocalFragmentCount(Collection ftasks, int base_partition) {
        int cnt = 0;
        for (PartitionFragment ftask : ftasks) {
            if (ftask.getPartitionId() == base_partition) cnt++;
File
TestBatchPlanner.java
Developer's decision
Manual
Kind of conflict
Method signature
Chunk
Conflicting content
        } // FOR
        return (cnt);
    }
<<<<<<< HEAD
    protected static int getRemoteFragmentCount(Collection ftasks, int base_partition) {
=======
    protected int getRemoteFragmentCount(Collection ftasks, int base_partition) {
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
        int cnt = 0;
        for (PartitionFragment ftask : ftasks) {
            if (ftask.getPartitionId() != base_partition) cnt++;
Solution content
        } // FOR
        return (cnt);
    }
    protected static int getRemoteFragmentCount(Collection ftasks, int base_partition) {
        int cnt = 0;
        for (PartitionFragment ftask : ftasks) {
            if (ftask.getPartitionId() != base_partition) cnt++;
File
TestBatchPlanner.java
Developer's decision
Manual
Kind of conflict
Method signature
Chunk
Conflicting content
        LoadWarehouse.class,
        LoadWarehouseReplicated.class,
        GetTableCounts.class,
<<<<<<< HEAD
        
        //MRquery1.class,
        //MRquery19.class,
        //MRquery6.class
        
=======
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
    };
    
    // Transaction Frequencies
Solution content
        LoadWarehouse.class,
        LoadWarehouseReplicated.class,
        GetTableCounts.class,
    };
    
    // Transaction Frequencies
File
TPCCProjectBuilder.java
Developer's decision
Version 2
Kind of conflict
Comment
Chunk
Conflicting content
    public void addDefaultProcedures() {
        addProcedures(PROCEDURES);
        
<<<<<<< HEAD
        addStmtProcedure("Query1", "SELECT ol_number, SUM(ol_quantity), SUM(ol_amount),AVG(ol_quantity),AVG(ol_amount),COUNT(*) FROM order_line GROUP BY ol_number order by ol_number");
        addStmtProcedure("Query19","select ol_number, sum(ol_amount) from order_line " +
        		                   "where ( ol_o_id >= 20 and ol_o_id <= 100  )" +
        		                   " or (ol_o_id >= 105 and ol_o_id <= 200 )" +
        		                   " or (ol_o_id >= 210 and ol_o_id <= 290 )" +
        		                   "GROUP BY ol_number order by ol_number"
        		                   );
        addStmtProcedure("Query6","select  ol_number, sum(ol_amount) " +
                                    "from    order_line " +
                                    "where  ol_quantity between 1 and 100000 " +
                                    "group by ol_number order by ol_number"
                                    );
//        addStmtProcedure("Query6","se");
=======
        addStmtProcedure("GetWarehouse", "SELECT * FROM WAREHOUSE WHERE W_ID = ?");
        
>>>>>>> d834e4a045b0131b1cd86cfca8f59f0604a92f25
//        addStmtProcedure("InsertCustomer", "INSERT INTO CUSTOMER VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", "CUSTOMER.C_W_ID: 2");
//        addStmtProcedure("InsertWarehouse", "INSERT INTO WAREHOUSE VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);", "WAREHOUSE.W_ID: 0");
//        addStmtProcedure("InsertStock", "INSERT INTO STOCK VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", "STOCK.S_W_ID: 1");
Solution content
    public void addDefaultProcedures() {
        addProcedures(PROCEDURES);
        
        addStmtProcedure("Query1", "SELECT ol_number, SUM(ol_quantity), SUM(ol_amount),AVG(ol_quantity),AVG(ol_amount),COUNT(*) FROM order_line GROUP BY ol_number order by ol_number");
        addStmtProcedure("Query19","select ol_number, sum(ol_amount) from order_line " +
                                   "where ( ol_o_id >= 20 and ol_o_id <= 100  )" +
     */
                                   " or (ol_o_id >= 105 and ol_o_id <= 200 )" +
                                   " or (ol_o_id >= 210 and ol_o_id <= 290 )" +
                                   "GROUP BY ol_number order by ol_number"
                                   );
        addStmtProcedure("Query6","select  ol_number, sum(ol_amount) " +
                                    "from    order_line " +
                                    "where  ol_quantity between 1 and 100000 " +
                                    "group by ol_number order by ol_number"
                                    );
        
        addStmtProcedure("GetWarehouse", "SELECT * FROM WAREHOUSE WHERE W_ID = ?");
        
    }

    /**
     * Add the TPC-C partitioning to the VoltProjectBuilder base class.
    public void addDefaultPartitioning() {
        for (String pair[] : partitioning) {
            addPartitionInfo(pair[0], pair[1]);
        }
    }

    /**
     * Add the TPC-C schema to the VoltProjectBuilder base class.
     */
    public void addDefaultSchema() {
        addSchema(this.getDDLURL(true));
    }

    public void addDefaultELT() {
        addELT("org.voltdb.elt.connectors.VerticaConnector", true, null, null);

        /* Fixed after the loader completes. */
        // addELTTable("WAREHOUSE", false);
        // addELTTable("DISTRICT", false);
        // addELTTable("ITEM", false);
        // addELTTable("CUSTOMER", false);
        // addELTTable("CUSTOMER_NAME", false);
        // addELTTable("STOCK", false);

        /* Modified by actual benchmark: approx 6.58 ins/del per txn. */
        // addELTTable("HISTORY", false);     // 1 insert per payment (43%)
        // addELTTable("ORDERS", false);      // 1 insert per new order (45%)
        // addELTTable("NEW_ORDER", false);   // 1 insert per new order; 10 deletes per delivery (4%)
        addELTTable("ORDER_LINE", false);     // 10 inserts per new order
    }

    @Override
    public void addAllDefaults() {
        addDefaultProcedures();
        addDefaultPartitioning();
        addDefaultSchema();
        // addDefaultELT();
    }

    /**
     * Get a pointer to a compiled catalog for TPCC with all the procedures.
     */
    public Catalog createTPCCSchemaCatalog() throws IOException {
        return (this.createTPCCSchemaCatalog(false));
    }
    
    public Catalog createTPCCSchemaCatalog(boolean fkeys) throws IOException {
        // compile a catalog
        String testDir = BuildDirectoryUtils.getBuildDirectoryPath();
        String catalogJar = testDir + File.separator + this.getJarName(true);

        addSchema(this.getDDLURL(fkeys));
        addDefaultPartitioning();
        addDefaultProcedures();
        //this.addProcedures(org.voltdb.benchmark.tpcc.procedures.InsertHistory.class);

        boolean status = compile(catalogJar);
        assert(status);

        // read in the catalog
        String serializedCatalog = CatalogUtil.loadCatalogFromJar(catalogJar, null);
        assert(serializedCatalog != null);

        // create the catalog (that will be passed to the ClientInterface
        Catalog catalog = new Catalog();
        catalog.execute(serializedCatalog);

        return catalog;
    }

    /**
     * Get a pointer to a compiled catalog for TPCC with all the procedures.
     * This can be run without worrying about setting up anything else in this class.
     */
    public static Catalog getTPCCSchemaCatalog(boolean fkeys) throws IOException {
        return (new TPCCProjectBuilder().createTPCCSchemaCatalog(fkeys));
    }
    
    static public Catalog getTPCCSchemaCatalog() throws IOException {
        return (new TPCCProjectBuilder().createTPCCSchemaCatalog(false));
    }
}
File
TPCCProjectBuilder.java
Developer's decision
Manual
Kind of conflict
Comment
Method invocation