You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/06/11 05:51:49 UTC

[04/61] [abbrv] Enable View persistence, Storage Plugin and System option persistence.

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitServerHandshake.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitServerHandshake.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitServerHandshake.java
new file mode 100644
index 0000000..277568a
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitServerHandshake.java
@@ -0,0 +1,163 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class BitServerHandshake implements Externalizable, Message<BitServerHandshake>, Schema<BitServerHandshake>
+{
+
+    public static Schema<BitServerHandshake> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static BitServerHandshake getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final BitServerHandshake DEFAULT_INSTANCE = new BitServerHandshake();
+
+    
+    private int rpcVersion;
+
+    public BitServerHandshake()
+    {
+        
+    }
+
+    // getters and setters
+
+    // rpcVersion
+
+    public int getRpcVersion()
+    {
+        return rpcVersion;
+    }
+
+    public BitServerHandshake setRpcVersion(int rpcVersion)
+    {
+        this.rpcVersion = rpcVersion;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<BitServerHandshake> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public BitServerHandshake newMessage()
+    {
+        return new BitServerHandshake();
+    }
+
+    public Class<BitServerHandshake> typeClass()
+    {
+        return BitServerHandshake.class;
+    }
+
+    public String messageName()
+    {
+        return BitServerHandshake.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return BitServerHandshake.class.getName();
+    }
+
+    public boolean isInitialized(BitServerHandshake message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, BitServerHandshake message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.rpcVersion = input.readInt32();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, BitServerHandshake message) throws IOException
+    {
+        if(message.rpcVersion != 0)
+            output.writeInt32(1, message.rpcVersion, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "rpcVersion";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("rpcVersion", 1);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitStatus.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitStatus.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitStatus.java
new file mode 100644
index 0000000..897174a
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitStatus.java
@@ -0,0 +1,175 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class BitStatus implements Externalizable, Message<BitStatus>, Schema<BitStatus>
+{
+
+    public static Schema<BitStatus> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static BitStatus getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final BitStatus DEFAULT_INSTANCE = new BitStatus();
+
+    
+    private List<FragmentStatus> fragmentStatus;
+
+    public BitStatus()
+    {
+        
+    }
+
+    // getters and setters
+
+    // fragmentStatus
+
+    public List<FragmentStatus> getFragmentStatusList()
+    {
+        return fragmentStatus;
+    }
+
+    public BitStatus setFragmentStatusList(List<FragmentStatus> fragmentStatus)
+    {
+        this.fragmentStatus = fragmentStatus;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<BitStatus> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public BitStatus newMessage()
+    {
+        return new BitStatus();
+    }
+
+    public Class<BitStatus> typeClass()
+    {
+        return BitStatus.class;
+    }
+
+    public String messageName()
+    {
+        return BitStatus.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return BitStatus.class.getName();
+    }
+
+    public boolean isInitialized(BitStatus message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, BitStatus message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    if(message.fragmentStatus == null)
+                        message.fragmentStatus = new ArrayList<FragmentStatus>();
+                    message.fragmentStatus.add(input.mergeObject(null, FragmentStatus.getSchema()));
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, BitStatus message) throws IOException
+    {
+        if(message.fragmentStatus != null)
+        {
+            for(FragmentStatus fragmentStatus : message.fragmentStatus)
+            {
+                if(fragmentStatus != null)
+                    output.writeObject(1, fragmentStatus, FragmentStatus.getSchema(), true);
+            }
+        }
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "fragmentStatus";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("fragmentStatus", 1);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitToUserHandshake.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitToUserHandshake.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitToUserHandshake.java
new file mode 100644
index 0000000..813eb1c
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/BitToUserHandshake.java
@@ -0,0 +1,163 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class BitToUserHandshake implements Externalizable, Message<BitToUserHandshake>, Schema<BitToUserHandshake>
+{
+
+    public static Schema<BitToUserHandshake> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static BitToUserHandshake getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final BitToUserHandshake DEFAULT_INSTANCE = new BitToUserHandshake();
+
+    
+    private int rpcVersion;
+
+    public BitToUserHandshake()
+    {
+        
+    }
+
+    // getters and setters
+
+    // rpcVersion
+
+    public int getRpcVersion()
+    {
+        return rpcVersion;
+    }
+
+    public BitToUserHandshake setRpcVersion(int rpcVersion)
+    {
+        this.rpcVersion = rpcVersion;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<BitToUserHandshake> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public BitToUserHandshake newMessage()
+    {
+        return new BitToUserHandshake();
+    }
+
+    public Class<BitToUserHandshake> typeClass()
+    {
+        return BitToUserHandshake.class;
+    }
+
+    public String messageName()
+    {
+        return BitToUserHandshake.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return BitToUserHandshake.class.getName();
+    }
+
+    public boolean isInitialized(BitToUserHandshake message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, BitToUserHandshake message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 2:
+                    message.rpcVersion = input.readInt32();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, BitToUserHandshake message) throws IOException
+    {
+        if(message.rpcVersion != 0)
+            output.writeInt32(2, message.rpcVersion, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 2: return "rpcVersion";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("rpcVersion", 2);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/CompleteRpcMessage.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/CompleteRpcMessage.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/CompleteRpcMessage.java
new file mode 100644
index 0000000..361bc93
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/CompleteRpcMessage.java
@@ -0,0 +1,210 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.ByteString;
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class CompleteRpcMessage implements Externalizable, Message<CompleteRpcMessage>, Schema<CompleteRpcMessage>
+{
+
+    public static Schema<CompleteRpcMessage> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static CompleteRpcMessage getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final CompleteRpcMessage DEFAULT_INSTANCE = new CompleteRpcMessage();
+
+    
+    private RpcHeader header;
+    private ByteString protobufBody;
+    private ByteString rawBody;
+
+    public CompleteRpcMessage()
+    {
+        
+    }
+
+    // getters and setters
+
+    // header
+
+    public RpcHeader getHeader()
+    {
+        return header;
+    }
+
+    public CompleteRpcMessage setHeader(RpcHeader header)
+    {
+        this.header = header;
+        return this;
+    }
+
+    // protobufBody
+
+    public ByteString getProtobufBody()
+    {
+        return protobufBody;
+    }
+
+    public CompleteRpcMessage setProtobufBody(ByteString protobufBody)
+    {
+        this.protobufBody = protobufBody;
+        return this;
+    }
+
+    // rawBody
+
+    public ByteString getRawBody()
+    {
+        return rawBody;
+    }
+
+    public CompleteRpcMessage setRawBody(ByteString rawBody)
+    {
+        this.rawBody = rawBody;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<CompleteRpcMessage> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public CompleteRpcMessage newMessage()
+    {
+        return new CompleteRpcMessage();
+    }
+
+    public Class<CompleteRpcMessage> typeClass()
+    {
+        return CompleteRpcMessage.class;
+    }
+
+    public String messageName()
+    {
+        return CompleteRpcMessage.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return CompleteRpcMessage.class.getName();
+    }
+
+    public boolean isInitialized(CompleteRpcMessage message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, CompleteRpcMessage message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.header = input.mergeObject(message.header, RpcHeader.getSchema());
+                    break;
+
+                case 2:
+                    message.protobufBody = input.readBytes();
+                    break;
+                case 3:
+                    message.rawBody = input.readBytes();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, CompleteRpcMessage message) throws IOException
+    {
+        if(message.header != null)
+             output.writeObject(1, message.header, RpcHeader.getSchema(), false);
+
+
+        if(message.protobufBody != null)
+            output.writeBytes(2, message.protobufBody, false);
+
+        if(message.rawBody != null)
+            output.writeBytes(3, message.rawBody, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "header";
+            case 2: return "protobufBody";
+            case 3: return "rawBody";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("header", 1);
+        __fieldMap.put("protobufBody", 2);
+        __fieldMap.put("rawBody", 3);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/CoreOperatorType.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/CoreOperatorType.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/CoreOperatorType.java
new file mode 100644
index 0000000..3690625
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/CoreOperatorType.java
@@ -0,0 +1,107 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+public enum CoreOperatorType implements com.dyuproject.protostuff.EnumLite<CoreOperatorType>
+{
+    SINGLE_SENDER(0),
+    BROADCAST_SENDER(1),
+    FILTER(2),
+    HASH_AGGREGATE(3),
+    HASH_JOIN(4),
+    MERGE_JOIN(5),
+    HASH_PARTITION_SENDER(6),
+    LIMIT(7),
+    MERGING_RECEIVER(8),
+    ORDERED_PARTITION_SENDER(9),
+    PROJECT(10),
+    RANDOM_RECEIVER(11),
+    RANGE_SENDER(12),
+    SCREEN(13),
+    SELECTION_VECTOR_REMOVER(14),
+    STREAMING_AGGREGATE(15),
+    TOP_N_SORT(16),
+    EXTERNAL_SORT(17),
+    TRACE(18),
+    UNION(19),
+    OLD_SORT(20),
+    PARQUET_ROW_GROUP_SCAN(21),
+    HIVE_SUB_SCAN(22),
+    SYSTEM_TABLE_SCAN(23),
+    MOCK_SUB_SCAN(24),
+    PARQUET_WRITER(25),
+    DIRECT_SUB_SCAN(26),
+    TEXT_WRITER(27),
+    TEXT_SUB_SCAN(28),
+    JSON_SUB_SCAN(29),
+    INFO_SCHEMA_SUB_SCAN(30);
+    
+    public final int number;
+    
+    private CoreOperatorType (int number)
+    {
+        this.number = number;
+    }
+    
+    public int getNumber()
+    {
+        return number;
+    }
+    
+    public static CoreOperatorType valueOf(int number)
+    {
+        switch(number) 
+        {
+            case 0: return SINGLE_SENDER;
+            case 1: return BROADCAST_SENDER;
+            case 2: return FILTER;
+            case 3: return HASH_AGGREGATE;
+            case 4: return HASH_JOIN;
+            case 5: return MERGE_JOIN;
+            case 6: return HASH_PARTITION_SENDER;
+            case 7: return LIMIT;
+            case 8: return MERGING_RECEIVER;
+            case 9: return ORDERED_PARTITION_SENDER;
+            case 10: return PROJECT;
+            case 11: return RANDOM_RECEIVER;
+            case 12: return RANGE_SENDER;
+            case 13: return SCREEN;
+            case 14: return SELECTION_VECTOR_REMOVER;
+            case 15: return STREAMING_AGGREGATE;
+            case 16: return TOP_N_SORT;
+            case 17: return EXTERNAL_SORT;
+            case 18: return TRACE;
+            case 19: return UNION;
+            case 20: return OLD_SORT;
+            case 21: return PARQUET_ROW_GROUP_SCAN;
+            case 22: return HIVE_SUB_SCAN;
+            case 23: return SYSTEM_TABLE_SCAN;
+            case 24: return MOCK_SUB_SCAN;
+            case 25: return PARQUET_WRITER;
+            case 26: return DIRECT_SUB_SCAN;
+            case 27: return TEXT_WRITER;
+            case 28: return TEXT_SUB_SCAN;
+            case 29: return JSON_SUB_SCAN;
+            case 30: return INFO_SCHEMA_SUB_SCAN;
+            default: return null;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java
new file mode 100644
index 0000000..303f9b6
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillPBError.java
@@ -0,0 +1,265 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class DrillPBError implements Externalizable, Message<DrillPBError>, Schema<DrillPBError>
+{
+
+    public static Schema<DrillPBError> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static DrillPBError getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final DrillPBError DEFAULT_INSTANCE = new DrillPBError();
+
+    
+    private String errorId;
+    private DrillbitEndpoint endpoint;
+    private int errorType;
+    private String message;
+    private List<ParsingError> parsingError;
+
+    public DrillPBError()
+    {
+        
+    }
+
+    // getters and setters
+
+    // errorId
+
+    public String getErrorId()
+    {
+        return errorId;
+    }
+
+    public DrillPBError setErrorId(String errorId)
+    {
+        this.errorId = errorId;
+        return this;
+    }
+
+    // endpoint
+
+    public DrillbitEndpoint getEndpoint()
+    {
+        return endpoint;
+    }
+
+    public DrillPBError setEndpoint(DrillbitEndpoint endpoint)
+    {
+        this.endpoint = endpoint;
+        return this;
+    }
+
+    // errorType
+
+    public int getErrorType()
+    {
+        return errorType;
+    }
+
+    public DrillPBError setErrorType(int errorType)
+    {
+        this.errorType = errorType;
+        return this;
+    }
+
+    // message
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public DrillPBError setMessage(String message)
+    {
+        this.message = message;
+        return this;
+    }
+
+    // parsingError
+
+    public List<ParsingError> getParsingErrorList()
+    {
+        return parsingError;
+    }
+
+    public DrillPBError setParsingErrorList(List<ParsingError> parsingError)
+    {
+        this.parsingError = parsingError;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<DrillPBError> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public DrillPBError newMessage()
+    {
+        return new DrillPBError();
+    }
+
+    public Class<DrillPBError> typeClass()
+    {
+        return DrillPBError.class;
+    }
+
+    public String messageName()
+    {
+        return DrillPBError.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return DrillPBError.class.getName();
+    }
+
+    public boolean isInitialized(DrillPBError message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, DrillPBError message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.errorId = input.readString();
+                    break;
+                case 2:
+                    message.endpoint = input.mergeObject(message.endpoint, DrillbitEndpoint.getSchema());
+                    break;
+
+                case 3:
+                    message.errorType = input.readInt32();
+                    break;
+                case 4:
+                    message.message = input.readString();
+                    break;
+                case 5:
+                    if(message.parsingError == null)
+                        message.parsingError = new ArrayList<ParsingError>();
+                    message.parsingError.add(input.mergeObject(null, ParsingError.getSchema()));
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, DrillPBError message) throws IOException
+    {
+        if(message.errorId != null)
+            output.writeString(1, message.errorId, false);
+
+        if(message.endpoint != null)
+             output.writeObject(2, message.endpoint, DrillbitEndpoint.getSchema(), false);
+
+
+        if(message.errorType != 0)
+            output.writeInt32(3, message.errorType, false);
+
+        if(message.message != null)
+            output.writeString(4, message.message, false);
+
+        if(message.parsingError != null)
+        {
+            for(ParsingError parsingError : message.parsingError)
+            {
+                if(parsingError != null)
+                    output.writeObject(5, parsingError, ParsingError.getSchema(), true);
+            }
+        }
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "errorId";
+            case 2: return "endpoint";
+            case 3: return "errorType";
+            case 4: return "message";
+            case 5: return "parsingError";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("errorId", 1);
+        __fieldMap.put("endpoint", 2);
+        __fieldMap.put("errorType", 3);
+        __fieldMap.put("message", 4);
+        __fieldMap.put("parsingError", 5);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillServiceInstance.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillServiceInstance.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillServiceInstance.java
new file mode 100644
index 0000000..b226003
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillServiceInstance.java
@@ -0,0 +1,209 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class DrillServiceInstance implements Externalizable, Message<DrillServiceInstance>, Schema<DrillServiceInstance>
+{
+
+    public static Schema<DrillServiceInstance> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static DrillServiceInstance getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final DrillServiceInstance DEFAULT_INSTANCE = new DrillServiceInstance();
+
+    
+    private String id;
+    private long registrationTimeUTC;
+    private DrillbitEndpoint endpoint;
+
+    public DrillServiceInstance()
+    {
+        
+    }
+
+    // getters and setters
+
+    // id
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public DrillServiceInstance setId(String id)
+    {
+        this.id = id;
+        return this;
+    }
+
+    // registrationTimeUTC
+
+    public long getRegistrationTimeUTC()
+    {
+        return registrationTimeUTC;
+    }
+
+    public DrillServiceInstance setRegistrationTimeUTC(long registrationTimeUTC)
+    {
+        this.registrationTimeUTC = registrationTimeUTC;
+        return this;
+    }
+
+    // endpoint
+
+    public DrillbitEndpoint getEndpoint()
+    {
+        return endpoint;
+    }
+
+    public DrillServiceInstance setEndpoint(DrillbitEndpoint endpoint)
+    {
+        this.endpoint = endpoint;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<DrillServiceInstance> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public DrillServiceInstance newMessage()
+    {
+        return new DrillServiceInstance();
+    }
+
+    public Class<DrillServiceInstance> typeClass()
+    {
+        return DrillServiceInstance.class;
+    }
+
+    public String messageName()
+    {
+        return DrillServiceInstance.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return DrillServiceInstance.class.getName();
+    }
+
+    public boolean isInitialized(DrillServiceInstance message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, DrillServiceInstance message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.id = input.readString();
+                    break;
+                case 2:
+                    message.registrationTimeUTC = input.readInt64();
+                    break;
+                case 3:
+                    message.endpoint = input.mergeObject(message.endpoint, DrillbitEndpoint.getSchema());
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, DrillServiceInstance message) throws IOException
+    {
+        if(message.id != null)
+            output.writeString(1, message.id, false);
+
+        if(message.registrationTimeUTC != 0)
+            output.writeInt64(2, message.registrationTimeUTC, false);
+
+        if(message.endpoint != null)
+             output.writeObject(3, message.endpoint, DrillbitEndpoint.getSchema(), false);
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "id";
+            case 2: return "registrationTimeUTC";
+            case 3: return "endpoint";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("id", 1);
+        __fieldMap.put("registrationTimeUTC", 2);
+        __fieldMap.put("endpoint", 3);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillbitEndpoint.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillbitEndpoint.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillbitEndpoint.java
new file mode 100644
index 0000000..71daf56
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/DrillbitEndpoint.java
@@ -0,0 +1,253 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class DrillbitEndpoint implements Externalizable, Message<DrillbitEndpoint>, Schema<DrillbitEndpoint>
+{
+
+    public static Schema<DrillbitEndpoint> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static DrillbitEndpoint getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final DrillbitEndpoint DEFAULT_INSTANCE = new DrillbitEndpoint();
+
+    
+    private String address;
+    private int userPort;
+    private int controlPort;
+    private int dataPort;
+    private Roles roles;
+
+    public DrillbitEndpoint()
+    {
+        
+    }
+
+    // getters and setters
+
+    // address
+
+    public String getAddress()
+    {
+        return address;
+    }
+
+    public DrillbitEndpoint setAddress(String address)
+    {
+        this.address = address;
+        return this;
+    }
+
+    // userPort
+
+    public int getUserPort()
+    {
+        return userPort;
+    }
+
+    public DrillbitEndpoint setUserPort(int userPort)
+    {
+        this.userPort = userPort;
+        return this;
+    }
+
+    // controlPort
+
+    public int getControlPort()
+    {
+        return controlPort;
+    }
+
+    public DrillbitEndpoint setControlPort(int controlPort)
+    {
+        this.controlPort = controlPort;
+        return this;
+    }
+
+    // dataPort
+
+    public int getDataPort()
+    {
+        return dataPort;
+    }
+
+    public DrillbitEndpoint setDataPort(int dataPort)
+    {
+        this.dataPort = dataPort;
+        return this;
+    }
+
+    // roles
+
+    public Roles getRoles()
+    {
+        return roles;
+    }
+
+    public DrillbitEndpoint setRoles(Roles roles)
+    {
+        this.roles = roles;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<DrillbitEndpoint> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public DrillbitEndpoint newMessage()
+    {
+        return new DrillbitEndpoint();
+    }
+
+    public Class<DrillbitEndpoint> typeClass()
+    {
+        return DrillbitEndpoint.class;
+    }
+
+    public String messageName()
+    {
+        return DrillbitEndpoint.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return DrillbitEndpoint.class.getName();
+    }
+
+    public boolean isInitialized(DrillbitEndpoint message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, DrillbitEndpoint message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.address = input.readString();
+                    break;
+                case 2:
+                    message.userPort = input.readInt32();
+                    break;
+                case 3:
+                    message.controlPort = input.readInt32();
+                    break;
+                case 4:
+                    message.dataPort = input.readInt32();
+                    break;
+                case 5:
+                    message.roles = input.mergeObject(message.roles, Roles.getSchema());
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, DrillbitEndpoint message) throws IOException
+    {
+        if(message.address != null)
+            output.writeString(1, message.address, false);
+
+        if(message.userPort != 0)
+            output.writeInt32(2, message.userPort, false);
+
+        if(message.controlPort != 0)
+            output.writeInt32(3, message.controlPort, false);
+
+        if(message.dataPort != 0)
+            output.writeInt32(4, message.dataPort, false);
+
+        if(message.roles != null)
+             output.writeObject(5, message.roles, Roles.getSchema(), false);
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "address";
+            case 2: return "userPort";
+            case 3: return "controlPort";
+            case 4: return "dataPort";
+            case 5: return "roles";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("address", 1);
+        __fieldMap.put("userPort", 2);
+        __fieldMap.put("controlPort", 3);
+        __fieldMap.put("dataPort", 4);
+        __fieldMap.put("roles", 5);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentHandle.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentHandle.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentHandle.java
new file mode 100644
index 0000000..6d8a183
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentHandle.java
@@ -0,0 +1,209 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class FragmentHandle implements Externalizable, Message<FragmentHandle>, Schema<FragmentHandle>
+{
+
+    public static Schema<FragmentHandle> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static FragmentHandle getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final FragmentHandle DEFAULT_INSTANCE = new FragmentHandle();
+
+    
+    private QueryId queryId;
+    private int majorFragmentId;
+    private int minorFragmentId;
+
+    public FragmentHandle()
+    {
+        
+    }
+
+    // getters and setters
+
+    // queryId
+
+    public QueryId getQueryId()
+    {
+        return queryId;
+    }
+
+    public FragmentHandle setQueryId(QueryId queryId)
+    {
+        this.queryId = queryId;
+        return this;
+    }
+
+    // majorFragmentId
+
+    public int getMajorFragmentId()
+    {
+        return majorFragmentId;
+    }
+
+    public FragmentHandle setMajorFragmentId(int majorFragmentId)
+    {
+        this.majorFragmentId = majorFragmentId;
+        return this;
+    }
+
+    // minorFragmentId
+
+    public int getMinorFragmentId()
+    {
+        return minorFragmentId;
+    }
+
+    public FragmentHandle setMinorFragmentId(int minorFragmentId)
+    {
+        this.minorFragmentId = minorFragmentId;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<FragmentHandle> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public FragmentHandle newMessage()
+    {
+        return new FragmentHandle();
+    }
+
+    public Class<FragmentHandle> typeClass()
+    {
+        return FragmentHandle.class;
+    }
+
+    public String messageName()
+    {
+        return FragmentHandle.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return FragmentHandle.class.getName();
+    }
+
+    public boolean isInitialized(FragmentHandle message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, FragmentHandle message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.queryId = input.mergeObject(message.queryId, QueryId.getSchema());
+                    break;
+
+                case 2:
+                    message.majorFragmentId = input.readInt32();
+                    break;
+                case 3:
+                    message.minorFragmentId = input.readInt32();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, FragmentHandle message) throws IOException
+    {
+        if(message.queryId != null)
+             output.writeObject(1, message.queryId, QueryId.getSchema(), false);
+
+
+        if(message.majorFragmentId != 0)
+            output.writeInt32(2, message.majorFragmentId, false);
+
+        if(message.minorFragmentId != 0)
+            output.writeInt32(3, message.minorFragmentId, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "queryId";
+            case 2: return "majorFragmentId";
+            case 3: return "minorFragmentId";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("queryId", 1);
+        __fieldMap.put("majorFragmentId", 2);
+        __fieldMap.put("minorFragmentId", 3);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentRecordBatch.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentRecordBatch.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentRecordBatch.java
new file mode 100644
index 0000000..eac819c
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentRecordBatch.java
@@ -0,0 +1,278 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class FragmentRecordBatch implements Externalizable, Message<FragmentRecordBatch>, Schema<FragmentRecordBatch>
+{
+
+    public static Schema<FragmentRecordBatch> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static FragmentRecordBatch getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final FragmentRecordBatch DEFAULT_INSTANCE = new FragmentRecordBatch();
+
+    static final Boolean DEFAULT_IS_OUT_OF_MEMORY = new Boolean(false);
+    
+    private FragmentHandle handle;
+    private int sendingMajorFragmentId;
+    private int sendingMinorFragmentId;
+    private RecordBatchDef def;
+    private Boolean isLastBatch;
+    private Boolean isOutOfMemory = DEFAULT_IS_OUT_OF_MEMORY;
+
+    public FragmentRecordBatch()
+    {
+        
+    }
+
+    // getters and setters
+
+    // handle
+
+    public FragmentHandle getHandle()
+    {
+        return handle;
+    }
+
+    public FragmentRecordBatch setHandle(FragmentHandle handle)
+    {
+        this.handle = handle;
+        return this;
+    }
+
+    // sendingMajorFragmentId
+
+    public int getSendingMajorFragmentId()
+    {
+        return sendingMajorFragmentId;
+    }
+
+    public FragmentRecordBatch setSendingMajorFragmentId(int sendingMajorFragmentId)
+    {
+        this.sendingMajorFragmentId = sendingMajorFragmentId;
+        return this;
+    }
+
+    // sendingMinorFragmentId
+
+    public int getSendingMinorFragmentId()
+    {
+        return sendingMinorFragmentId;
+    }
+
+    public FragmentRecordBatch setSendingMinorFragmentId(int sendingMinorFragmentId)
+    {
+        this.sendingMinorFragmentId = sendingMinorFragmentId;
+        return this;
+    }
+
+    // def
+
+    public RecordBatchDef getDef()
+    {
+        return def;
+    }
+
+    public FragmentRecordBatch setDef(RecordBatchDef def)
+    {
+        this.def = def;
+        return this;
+    }
+
+    // isLastBatch
+
+    public Boolean getIsLastBatch()
+    {
+        return isLastBatch;
+    }
+
+    public FragmentRecordBatch setIsLastBatch(Boolean isLastBatch)
+    {
+        this.isLastBatch = isLastBatch;
+        return this;
+    }
+
+    // isOutOfMemory
+
+    public Boolean getIsOutOfMemory()
+    {
+        return isOutOfMemory;
+    }
+
+    public FragmentRecordBatch setIsOutOfMemory(Boolean isOutOfMemory)
+    {
+        this.isOutOfMemory = isOutOfMemory;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<FragmentRecordBatch> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public FragmentRecordBatch newMessage()
+    {
+        return new FragmentRecordBatch();
+    }
+
+    public Class<FragmentRecordBatch> typeClass()
+    {
+        return FragmentRecordBatch.class;
+    }
+
+    public String messageName()
+    {
+        return FragmentRecordBatch.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return FragmentRecordBatch.class.getName();
+    }
+
+    public boolean isInitialized(FragmentRecordBatch message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, FragmentRecordBatch message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.handle = input.mergeObject(message.handle, FragmentHandle.getSchema());
+                    break;
+
+                case 2:
+                    message.sendingMajorFragmentId = input.readInt32();
+                    break;
+                case 3:
+                    message.sendingMinorFragmentId = input.readInt32();
+                    break;
+                case 4:
+                    message.def = input.mergeObject(message.def, RecordBatchDef.getSchema());
+                    break;
+
+                case 5:
+                    message.isLastBatch = input.readBool();
+                    break;
+                case 6:
+                    message.isOutOfMemory = input.readBool();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, FragmentRecordBatch message) throws IOException
+    {
+        if(message.handle != null)
+             output.writeObject(1, message.handle, FragmentHandle.getSchema(), false);
+
+
+        if(message.sendingMajorFragmentId != 0)
+            output.writeInt32(2, message.sendingMajorFragmentId, false);
+
+        if(message.sendingMinorFragmentId != 0)
+            output.writeInt32(3, message.sendingMinorFragmentId, false);
+
+        if(message.def != null)
+             output.writeObject(4, message.def, RecordBatchDef.getSchema(), false);
+
+
+        if(message.isLastBatch != null)
+            output.writeBool(5, message.isLastBatch, false);
+
+        if(message.isOutOfMemory != null && message.isOutOfMemory != DEFAULT_IS_OUT_OF_MEMORY)
+            output.writeBool(6, message.isOutOfMemory, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "handle";
+            case 2: return "sendingMajorFragmentId";
+            case 3: return "sendingMinorFragmentId";
+            case 4: return "def";
+            case 5: return "isLastBatch";
+            case 6: return "isOutOfMemory";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("handle", 1);
+        __fieldMap.put("sendingMajorFragmentId", 2);
+        __fieldMap.put("sendingMinorFragmentId", 3);
+        __fieldMap.put("def", 4);
+        __fieldMap.put("isLastBatch", 5);
+        __fieldMap.put("isOutOfMemory", 6);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentState.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentState.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentState.java
new file mode 100644
index 0000000..ba536fc
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentState.java
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+public enum FragmentState implements com.dyuproject.protostuff.EnumLite<FragmentState>
+{
+    SENDING(0),
+    AWAITING_ALLOCATION(1),
+    RUNNING(2),
+    FINISHED(3),
+    CANCELLED(4),
+    FAILED(5);
+    
+    public final int number;
+    
+    private FragmentState (int number)
+    {
+        this.number = number;
+    }
+    
+    public int getNumber()
+    {
+        return number;
+    }
+    
+    public static FragmentState valueOf(int number)
+    {
+        switch(number) 
+        {
+            case 0: return SENDING;
+            case 1: return AWAITING_ALLOCATION;
+            case 2: return RUNNING;
+            case 3: return FINISHED;
+            case 4: return CANCELLED;
+            case 5: return FAILED;
+            default: return null;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentStatus.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentStatus.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentStatus.java
new file mode 100644
index 0000000..a64d3b6
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/FragmentStatus.java
@@ -0,0 +1,189 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class FragmentStatus implements Externalizable, Message<FragmentStatus>, Schema<FragmentStatus>
+{
+
+    public static Schema<FragmentStatus> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static FragmentStatus getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final FragmentStatus DEFAULT_INSTANCE = new FragmentStatus();
+
+    
+    private MinorFragmentProfile profile;
+    private FragmentHandle handle;
+
+    public FragmentStatus()
+    {
+        
+    }
+
+    // getters and setters
+
+    // profile
+
+    public MinorFragmentProfile getProfile()
+    {
+        return profile;
+    }
+
+    public FragmentStatus setProfile(MinorFragmentProfile profile)
+    {
+        this.profile = profile;
+        return this;
+    }
+
+    // handle
+
+    public FragmentHandle getHandle()
+    {
+        return handle;
+    }
+
+    public FragmentStatus setHandle(FragmentHandle handle)
+    {
+        this.handle = handle;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<FragmentStatus> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public FragmentStatus newMessage()
+    {
+        return new FragmentStatus();
+    }
+
+    public Class<FragmentStatus> typeClass()
+    {
+        return FragmentStatus.class;
+    }
+
+    public String messageName()
+    {
+        return FragmentStatus.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return FragmentStatus.class.getName();
+    }
+
+    public boolean isInitialized(FragmentStatus message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, FragmentStatus message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.profile = input.mergeObject(message.profile, MinorFragmentProfile.getSchema());
+                    break;
+
+                case 2:
+                    message.handle = input.mergeObject(message.handle, FragmentHandle.getSchema());
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, FragmentStatus message) throws IOException
+    {
+        if(message.profile != null)
+             output.writeObject(1, message.profile, MinorFragmentProfile.getSchema(), false);
+
+
+        if(message.handle != null)
+             output.writeObject(2, message.handle, FragmentHandle.getSchema(), false);
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "profile";
+            case 2: return "handle";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("profile", 1);
+        __fieldMap.put("handle", 2);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/MajorFragmentProfile.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/MajorFragmentProfile.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/MajorFragmentProfile.java
new file mode 100644
index 0000000..b2053d7
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/MajorFragmentProfile.java
@@ -0,0 +1,197 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class MajorFragmentProfile implements Externalizable, Message<MajorFragmentProfile>, Schema<MajorFragmentProfile>
+{
+
+    public static Schema<MajorFragmentProfile> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static MajorFragmentProfile getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final MajorFragmentProfile DEFAULT_INSTANCE = new MajorFragmentProfile();
+
+    
+    private int majorFragmentId;
+    private List<MinorFragmentProfile> minorFragmentProfile;
+
+    public MajorFragmentProfile()
+    {
+        
+    }
+
+    // getters and setters
+
+    // majorFragmentId
+
+    public int getMajorFragmentId()
+    {
+        return majorFragmentId;
+    }
+
+    public MajorFragmentProfile setMajorFragmentId(int majorFragmentId)
+    {
+        this.majorFragmentId = majorFragmentId;
+        return this;
+    }
+
+    // minorFragmentProfile
+
+    public List<MinorFragmentProfile> getMinorFragmentProfileList()
+    {
+        return minorFragmentProfile;
+    }
+
+    public MajorFragmentProfile setMinorFragmentProfileList(List<MinorFragmentProfile> minorFragmentProfile)
+    {
+        this.minorFragmentProfile = minorFragmentProfile;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<MajorFragmentProfile> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public MajorFragmentProfile newMessage()
+    {
+        return new MajorFragmentProfile();
+    }
+
+    public Class<MajorFragmentProfile> typeClass()
+    {
+        return MajorFragmentProfile.class;
+    }
+
+    public String messageName()
+    {
+        return MajorFragmentProfile.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return MajorFragmentProfile.class.getName();
+    }
+
+    public boolean isInitialized(MajorFragmentProfile message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, MajorFragmentProfile message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.majorFragmentId = input.readInt32();
+                    break;
+                case 2:
+                    if(message.minorFragmentProfile == null)
+                        message.minorFragmentProfile = new ArrayList<MinorFragmentProfile>();
+                    message.minorFragmentProfile.add(input.mergeObject(null, MinorFragmentProfile.getSchema()));
+                    break;
+
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, MajorFragmentProfile message) throws IOException
+    {
+        if(message.majorFragmentId != 0)
+            output.writeInt32(1, message.majorFragmentId, false);
+
+        if(message.minorFragmentProfile != null)
+        {
+            for(MinorFragmentProfile minorFragmentProfile : message.minorFragmentProfile)
+            {
+                if(minorFragmentProfile != null)
+                    output.writeObject(2, minorFragmentProfile, MinorFragmentProfile.getSchema(), true);
+            }
+        }
+
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "majorFragmentId";
+            case 2: return "minorFragmentProfile";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("majorFragmentId", 1);
+        __fieldMap.put("minorFragmentProfile", 2);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/872d0abf/protocol/src/main/java/org/apache/drill/exec/proto/beans/MetricValue.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/beans/MetricValue.java b/protocol/src/main/java/org/apache/drill/exec/proto/beans/MetricValue.java
new file mode 100644
index 0000000..3b5439f
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/beans/MetricValue.java
@@ -0,0 +1,207 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
+// Generated from protobuf
+
+package org.apache.drill.exec.proto.beans;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import com.dyuproject.protostuff.GraphIOUtil;
+import com.dyuproject.protostuff.Input;
+import com.dyuproject.protostuff.Message;
+import com.dyuproject.protostuff.Output;
+import com.dyuproject.protostuff.Schema;
+
+public final class MetricValue implements Externalizable, Message<MetricValue>, Schema<MetricValue>
+{
+
+    public static Schema<MetricValue> getSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    public static MetricValue getDefaultInstance()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    static final MetricValue DEFAULT_INSTANCE = new MetricValue();
+
+    
+    private int metricId;
+    private long longValue;
+    private double doubleValue;
+
+    public MetricValue()
+    {
+        
+    }
+
+    // getters and setters
+
+    // metricId
+
+    public int getMetricId()
+    {
+        return metricId;
+    }
+
+    public MetricValue setMetricId(int metricId)
+    {
+        this.metricId = metricId;
+        return this;
+    }
+
+    // longValue
+
+    public long getLongValue()
+    {
+        return longValue;
+    }
+
+    public MetricValue setLongValue(long longValue)
+    {
+        this.longValue = longValue;
+        return this;
+    }
+
+    // doubleValue
+
+    public double getDoubleValue()
+    {
+        return doubleValue;
+    }
+
+    public MetricValue setDoubleValue(double doubleValue)
+    {
+        this.doubleValue = doubleValue;
+        return this;
+    }
+
+    // java serialization
+
+    public void readExternal(ObjectInput in) throws IOException
+    {
+        GraphIOUtil.mergeDelimitedFrom(in, this, this);
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        GraphIOUtil.writeDelimitedTo(out, this, this);
+    }
+
+    // message method
+
+    public Schema<MetricValue> cachedSchema()
+    {
+        return DEFAULT_INSTANCE;
+    }
+
+    // schema methods
+
+    public MetricValue newMessage()
+    {
+        return new MetricValue();
+    }
+
+    public Class<MetricValue> typeClass()
+    {
+        return MetricValue.class;
+    }
+
+    public String messageName()
+    {
+        return MetricValue.class.getSimpleName();
+    }
+
+    public String messageFullName()
+    {
+        return MetricValue.class.getName();
+    }
+
+    public boolean isInitialized(MetricValue message)
+    {
+        return true;
+    }
+
+    public void mergeFrom(Input input, MetricValue message) throws IOException
+    {
+        for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+        {
+            switch(number)
+            {
+                case 0:
+                    return;
+                case 1:
+                    message.metricId = input.readInt32();
+                    break;
+                case 2:
+                    message.longValue = input.readInt64();
+                    break;
+                case 3:
+                    message.doubleValue = input.readDouble();
+                    break;
+                default:
+                    input.handleUnknownField(number, this);
+            }   
+        }
+    }
+
+
+    public void writeTo(Output output, MetricValue message) throws IOException
+    {
+        if(message.metricId != 0)
+            output.writeInt32(1, message.metricId, false);
+
+        if(message.longValue != 0)
+            output.writeInt64(2, message.longValue, false);
+
+        if(message.doubleValue != 0)
+            output.writeDouble(3, message.doubleValue, false);
+    }
+
+    public String getFieldName(int number)
+    {
+        switch(number)
+        {
+            case 1: return "metricId";
+            case 2: return "longValue";
+            case 3: return "doubleValue";
+            default: return null;
+        }
+    }
+
+    public int getFieldNumber(String name)
+    {
+        final Integer number = __fieldMap.get(name);
+        return number == null ? 0 : number.intValue();
+    }
+
+    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
+    static
+    {
+        __fieldMap.put("metricId", 1);
+        __fieldMap.put("longValue", 2);
+        __fieldMap.put("doubleValue", 3);
+    }
+    
+}