http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
new file mode 100644
index 0000000..92c49b9
--- /dev/null
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
@@ -0,0 +1,143 @@
+/**
+ * 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.
+ */
+package org.apache.drill.exec.fn.impl;
+
+import com.google.common.base.Charsets;
+import com.google.common.io.Files;
+import org.apache.drill.common.util.FileUtils;
+import org.apache.drill.exec.client.DrillClient;
+import org.apache.drill.exec.pop.PopUnitTestBase;
+import org.apache.drill.exec.proto.UserProtos;
+import org.apache.drill.exec.record.RecordBatchLoader;
+import org.apache.drill.exec.record.VectorWrapper;
+import org.apache.drill.exec.rpc.user.QueryResultBatch;
+import org.apache.drill.exec.server.Drillbit;
+import org.apache.drill.exec.server.RemoteServiceSet;
+import org.apache.drill.exec.vector.ValueVector;
+import org.apache.drill.exec.vector.BigIntVector;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+
+public class TestDateFunctions extends PopUnitTestBase {
+    static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(TestDateFunctions.class);
+
+    public void testCommon(String[] expectedResults, String physicalPlan, 
String resourceFile) throws Exception {
+        try (RemoteServiceSet serviceSet = 
RemoteServiceSet.getLocalServiceSet();
+             Drillbit bit = new Drillbit(CONFIG, serviceSet);
+             DrillClient client = new DrillClient(CONFIG, 
serviceSet.getCoordinator())) {
+
+            // run query.
+            bit.run();
+            client.connect();
+            List<QueryResultBatch> results = 
client.runQuery(UserProtos.QueryType.PHYSICAL,
+                    Files.toString(FileUtils.getResourceAsFile(physicalPlan), 
Charsets.UTF_8)
+                            .replace("#{TEST_FILE}", resourceFile));
+
+            RecordBatchLoader batchLoader = new 
RecordBatchLoader(bit.getContext().getAllocator());
+
+            QueryResultBatch batch = results.get(0);
+            assertTrue(batchLoader.load(batch.getHeader().getDef(), 
batch.getData()));
+
+
+            int i = 0;
+            for (VectorWrapper<?> v : batchLoader) {
+
+                ValueVector.Accessor accessor = 
v.getValueVector().getAccessor();
+                System.out.println(accessor.getObject(0));
+                
assertTrue((accessor.getObject(0)).toString().equals(expectedResults[i++]));
+            }
+
+            batchLoader.clear();
+            for(QueryResultBatch b : results){
+                b.release();
+            }
+        }
+    }
+
+    @Test
+    public void testDateIntervalArithmetic() throws Exception {
+        String expectedResults[] = {"2009-02-23",
+                                    "2008-02-24",
+                                    "13:20:33",
+                                    "2008-02-24 12:00:00.0",
+                                    "2009-04-23 12:00:00.0",
+                                    "2008-02-24 12:00:00.0",
+                                    "2009-04-23 12:00:00.0",
+                                    "2009-02-23",
+                                    "2008-02-24",
+                                    "13:20:33",
+                                    "2008-02-24 12:00:00.0",
+                                    "2009-04-23 12:00:00.0",
+                                    "2008-02-24 12:00:00.0",
+                                    "2009-04-23 12:00:00.0"};
+
+        testCommon(expectedResults, 
"/functions/date/date_interval_arithmetic.json", "/test_simple_date.json");
+    }
+
+    @Test
+    public void testDateDifferenceArithmetic() throws Exception {
+
+        String[] expectedResults = {"365 days 0:0:0.0",
+                                   "-366 days 0:-1:0.0",
+                                    "0 days 3:0:0.0",
+                                    "0 days 11:0:0.0"};
+        testCommon(expectedResults, 
"/functions/date/date_difference_arithmetic.json", "/test_simple_date.json");
+    }
+
+    @Test
+    public void testIntervalArithmetic() throws Exception {
+
+        String[] expectedResults = {"2 years 2 months ",
+                                    "2 days 1:2:3.0",
+                                    "0 years 2 months ",
+                                    "0 days 1:2:3.0",
+                                    "2 years 4 months 0 days 0:0:0.0",
+                                    "0 years 0 months 0 days 2:0:6.0",
+                                    "0 years 7 months 0 days 0:0:0.0",
+                                    "0 years 0 months 0 days 0:30:1.500",
+                                    "2 years 9 months 18 days 0:0:0.0",
+                                    "0 years 0 months 0 days 2:24:7.200",
+                                    "0 years 6 months 19 days 23:59:59.999",
+                                    "0 years 0 months 0 days 0:28:35.714"};
+        testCommon(expectedResults, 
"/functions/date/interval_arithmetic.json", "/test_simple_date.json");
+    }
+
+    @Test
+    public void testToChar() throws Exception {
+
+        String expectedResults[] = {"2008-Feb-23",
+                                    "12 20 30",
+                                    "2008 Feb 23 12:00:00",
+                                    "2008-02-23 20:00:00 America/Los_Angeles"};
+        testCommon(expectedResults, "/functions/date/to_char.json", 
"/test_simple_date.json");
+    }
+
+    @Test
+    public void testToDateType() throws Exception {
+        String expectedResults[] = {"2008-02-23",
+                                    "12:20:30",
+                                    "2008-02-23 12:00:00.0",
+                                    "2008-02-23 12:00:00.0"};
+
+        testCommon(expectedResults, "/functions/date/to_date_type.json", 
"/test_simple_date.json");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
 
b/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
new file mode 100644
index 0000000..bd8386c
--- /dev/null
+++ 
b/exec/java-exec/src/test/resources/functions/date/date_difference_arithmetic.json
@@ -0,0 +1,36 @@
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
+    },
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "resultMode" : "EXEC"
+  },
+  graph:[
+  {
+      @id:1,
+      pop:"fs-scan",
+      format: {type: "json"},
+      storage:{type: "file", connection: "classpath:///"},
+      files:["#{TEST_FILE}"]
+  },
+        {
+            pop:"project",
+            @id:2,
+            child: 1,
+            exprs: [
+              { ref: "Date1", expr: "cast('2008-2-23' as date) - 
cast('2007-2-23' as date)"},
+              { ref: "TimeStamp1", expr: "cast('2008-2-23 12:00:00' as 
timestamp) - cast('2009-2-23 12:01:00' as timestamp) "},
+              { ref: "TimeStampTZ1", expr: "cast('2008-2-23 12:00:00 
America/Los_Angeles' as timestamptz) - cast('2008-2-23 12:00:00 
America/New_York' as timestamptz)"},
+              { ref: "Time2", expr: "cast('12:20:30' as time) - cast('1:20:30' 
as time)"}
+            ]
+        },
+        {
+            @id: 3,
+            child: 2,
+            pop: "screen"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
 
b/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
new file mode 100644
index 0000000..c1e10a3
--- /dev/null
+++ 
b/exec/java-exec/src/test/resources/functions/date/date_interval_arithmetic.json
@@ -0,0 +1,46 @@
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
+    },
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "resultMode" : "EXEC"
+  },
+  graph:[
+  {
+      @id:1,
+      pop:"fs-scan",
+      format: {type: "json"},
+      storage:{type: "file", connection: "classpath:///"},
+      files:["#{TEST_FILE}"]
+  },
+        {
+            pop:"project",
+            @id:2,
+            child: 1,
+            exprs: [
+              { ref: "Date1", expr: "cast('2008-2-23' as date) + cast('P1Y' as 
intervalyear)"},
+              { ref: "Date2", expr: "cast('2008-2-23' as date) + cast('P1D' as 
intervalday)"},
+              { ref: "Time1", expr: "cast('12:20:30' as time) + 
cast('PT1H0M3S' as intervalday)"},
+              { ref: "TimeStamp1", expr: "cast('2008-2-23 12:00:00' as 
timestamp) + cast('P1D' as intervalday)"},
+              { ref: "TimeStamp2", expr: "cast('2008-2-23 12:00:00' as 
timestamp) + cast('P1Y2M' as intervalyear)"},
+              { ref: "TimeStampTZ1", expr: "cast('2008-2-23 12:00:00 
America/Los_Angeles' as timestamptz) + cast('P1D' as intervalday)"},
+              { ref: "TimeStampTZ2", expr: "cast('2008-2-23 12:00:00 
America/Los_Angeles' as timestamptz) + cast('P1Y2M' as intervalyear)"},
+              { ref: "Date3", expr: "cast('P1Y' as intervalyear) + 
cast('2008-2-23' as date)"},
+              { ref: "Date4", expr: "cast('P1D' as intervalday) + 
cast('2008-2-23' as date) "},
+              { ref: "Time2", expr: "cast('PT1H0M3S' as intervalday) + 
cast('12:20:30' as time)"},
+              { ref: "TimeStamp3", expr: "cast('P1D' as intervalday) + 
cast('2008-2-23 12:00:00' as timestamp)"},
+              { ref: "TimeStamp4", expr: "cast('P1Y2M' as intervalyear) + 
cast('2008-2-23 12:00:00' as timestamp)"},
+              { ref: "TimeStampTZ3", expr: "cast('P1D' as intervalday) + 
cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "},
+              { ref: "TimeStampTZ4", expr: "cast('P1Y2M' as intervalyear) + 
cast('2008-2-23 12:00:00 America/Los_Angeles' as timestamptz) "}
+            ]
+        },
+        {
+            @id: 3,
+            child: 2,
+            pop: "screen"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json 
b/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
new file mode 100644
index 0000000..50ae92b
--- /dev/null
+++ b/exec/java-exec/src/test/resources/functions/date/interval_arithmetic.json
@@ -0,0 +1,44 @@
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
+    },
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "resultMode" : "EXEC"
+  },
+  graph:[
+  {
+      @id:1,
+      pop:"fs-scan",
+      format: {type: "json"},
+      storage:{type: "file", connection: "classpath:///"},
+      files:["#{TEST_FILE}"]
+  },
+        {
+            pop:"project",
+            @id:2,
+            child: 1,
+            exprs: [
+              { ref: "IntervalYear1", expr: "cast('P1Y2M' as intervalyear) + 
cast('P1Y' as intervalyear)"},
+              { ref: "IntervalDay1", expr: "cast('P1DT1H2M3S' as intervalday) 
+ cast('P1D' as intervalday)"},
+              { ref: "IntervalYear2", expr: "cast('P1Y2M' as intervalyear) - 
cast('P1Y' as intervalyear)"},
+              { ref: "IntervalDay2", expr: "cast('P1DT1H2M3S' as intervalday) 
- cast('P1D' as intervalday)"},
+              { ref: "IntervalYear3", expr: "cast('P1Y2M' as intervalyear) * 
2"},
+              { ref: "IntervalDay3", expr: " 2 * cast('PT1H0M3S' as 
intervalday)"},
+              { ref: "IntervalYear4", expr: "cast('P1Y2M' as intervalyear) / 
2"},
+              { ref: "IntervalDay4", expr: " cast('PT1H0M3S' as intervalday) / 
2"},
+              { ref: "IntervalYear5", expr: "cast('P1Y2M' as intervalyear) * 
2.4"},
+              { ref: "IntervalDay6", expr: " 2.4 * cast('PT1H0M3S' as 
intervalday)"},
+              { ref: "IntervalYear6", expr: "cast('P1Y2M' as intervalyear) / 
2.1"},
+              { ref: "IntervalDay6", expr: " cast('PT1H0M3S' as intervalday) / 
2.1"}
+            ]
+        },
+        {
+            @id: 3,
+            child: 2,
+            pop: "screen"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/resources/functions/date/to_char.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/date/to_char.json 
b/exec/java-exec/src/test/resources/functions/date/to_char.json
new file mode 100644
index 0000000..0059401
--- /dev/null
+++ b/exec/java-exec/src/test/resources/functions/date/to_char.json
@@ -0,0 +1,36 @@
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
+    },
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "resultMode" : "EXEC"
+  },
+  graph:[
+  {
+      @id:1,
+      pop:"fs-scan",
+      format: {type: "json"},
+      storage:{type: "file", connection: "classpath:///"},
+      files:["#{TEST_FILE}"]
+  },
+        {
+            pop:"project",
+            @id:2,
+            child: 1,
+            exprs: [
+              { ref: "Date1", expr: "to_char((cast('2008-2-23' as date)), 
'yyyy-MMM-dd')"},
+              { ref: "Time1", expr: "to_char(cast('12:20:30' as time), 'HH mm 
ss')"},
+              { ref: "TimeStamp2", expr: "to_char(cast('2008-2-23 12:00:00' as 
timestamp), 'yyyy MMM dd HH:mm:ss')"},
+              { ref: "TimeStampTZ1", expr: "to_char(cast('2008-2-23 12:00:00 
America/Los_Angeles' as timestamptz), 'yyyy-MM-dd HH:mm:ss ZZZ')"}
+            ]
+        },
+        {
+            @id: 3,
+            child: 2,
+            pop: "screen"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/exec/java-exec/src/test/resources/functions/date/to_date_type.json
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/resources/functions/date/to_date_type.json 
b/exec/java-exec/src/test/resources/functions/date/to_date_type.json
new file mode 100644
index 0000000..ab429d1
--- /dev/null
+++ b/exec/java-exec/src/test/resources/functions/date/to_date_type.json
@@ -0,0 +1,36 @@
+{
+  "head" : {
+    "version" : 1,
+    "generator" : {
+      "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
+      "info" : ""
+    },
+    "type" : "APACHE_DRILL_PHYSICAL",
+    "resultMode" : "EXEC"
+  },
+  graph:[
+  {
+      @id:1,
+      pop:"fs-scan",
+      format: {type: "json"},
+      storage:{type: "file", connection: "classpath:///"},
+      files:["#{TEST_FILE}"]
+  },
+        {
+            pop:"project",
+            @id:2,
+            child: 1,
+            exprs: [
+              { ref: "Date1", expr: "to_date('2008-FEB-23', 'yyyy-MMM-dd')"},
+              { ref: "Time1", expr: "to_time('12:20:30', 'HH:mm:ss')"},
+              { ref: "TimeStamp2", expr: "to_timestamp('2008-2-23 12:00:00', 
'yyyy-MM-dd HH:mm:ss')"},
+              { ref: "TimeStampTZ1", expr: "to_timestamptz('2008-2-23 12:00:00 
America/Los_Angeles', 'yyyy-MM-dd HH:mm:ss ZZZ')"}
+            ]
+        },
+        {
+            @id: 3,
+            child: 2,
+            pop: "screen"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java 
b/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
index f91a010..fe37521 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
@@ -3145,6 +3145,16 @@ public final class BitControl {
      * <code>optional .exec.shared.UserCredentials credentials = 15;</code>
      */
     org.apache.drill.exec.proto.UserBitShared.UserCredentialsOrBuilder 
getCredentialsOrBuilder();
+
+    // optional int32 time_zone = 16;
+    /**
+     * <code>optional int32 time_zone = 16;</code>
+     */
+    boolean hasTimeZone();
+    /**
+     * <code>optional int32 time_zone = 16;</code>
+     */
+    int getTimeZone();
   }
   /**
    * Protobuf type {@code exec.bit.control.PlanFragment}
@@ -3294,6 +3304,11 @@ public final class BitControl {
               bitField0_ |= 0x00001000;
               break;
             }
+            case 128: {
+              bitField0_ |= 0x00002000;
+              timeZone_ = input.readInt32();
+              break;
+            }
           }
         }
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -3617,6 +3632,22 @@ public final class BitControl {
       return credentials_;
     }
 
+    // optional int32 time_zone = 16;
+    public static final int TIME_ZONE_FIELD_NUMBER = 16;
+    private int timeZone_;
+    /**
+     * <code>optional int32 time_zone = 16;</code>
+     */
+    public boolean hasTimeZone() {
+      return ((bitField0_ & 0x00002000) == 0x00002000);
+    }
+    /**
+     * <code>optional int32 time_zone = 16;</code>
+     */
+    public int getTimeZone() {
+      return timeZone_;
+    }
+
     private void initFields() {
       handle_ = 
org.apache.drill.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance();
       networkCost_ = 0F;
@@ -3631,6 +3662,7 @@ public final class BitControl {
       memMax_ = 20000000000L;
       queryStartTime_ = 0L;
       credentials_ = 
org.apache.drill.exec.proto.UserBitShared.UserCredentials.getDefaultInstance();
+      timeZone_ = 0;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -3683,6 +3715,9 @@ public final class BitControl {
       if (((bitField0_ & 0x00001000) == 0x00001000)) {
         output.writeMessage(15, credentials_);
       }
+      if (((bitField0_ & 0x00002000) == 0x00002000)) {
+        output.writeInt32(16, timeZone_);
+      }
       getUnknownFields().writeTo(output);
     }
 
@@ -3744,6 +3779,10 @@ public final class BitControl {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(15, credentials_);
       }
+      if (((bitField0_ & 0x00002000) == 0x00002000)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(16, timeZone_);
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
@@ -3906,6 +3945,8 @@ public final class BitControl {
           credentialsBuilder_.clear();
         }
         bitField0_ = (bitField0_ & ~0x00001000);
+        timeZone_ = 0;
+        bitField0_ = (bitField0_ & ~0x00002000);
         return this;
       }
 
@@ -4002,6 +4043,10 @@ public final class BitControl {
         } else {
           result.credentials_ = credentialsBuilder_.build();
         }
+        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
+          to_bitField0_ |= 0x00002000;
+        }
+        result.timeZone_ = timeZone_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -4059,6 +4104,9 @@ public final class BitControl {
         if (other.hasCredentials()) {
           mergeCredentials(other.getCredentials());
         }
+        if (other.hasTimeZone()) {
+          setTimeZone(other.getTimeZone());
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -4940,6 +4988,39 @@ public final class BitControl {
         return credentialsBuilder_;
       }
 
+      // optional int32 time_zone = 16;
+      private int timeZone_ ;
+      /**
+       * <code>optional int32 time_zone = 16;</code>
+       */
+      public boolean hasTimeZone() {
+        return ((bitField0_ & 0x00002000) == 0x00002000);
+      }
+      /**
+       * <code>optional int32 time_zone = 16;</code>
+       */
+      public int getTimeZone() {
+        return timeZone_;
+      }
+      /**
+       * <code>optional int32 time_zone = 16;</code>
+       */
+      public Builder setTimeZone(int value) {
+        bitField0_ |= 0x00002000;
+        timeZone_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 time_zone = 16;</code>
+       */
+      public Builder clearTimeZone() {
+        bitField0_ = (bitField0_ & ~0x00002000);
+        timeZone_ = 0;
+        onChanged();
+        return this;
+      }
+
       // @@protoc_insertion_point(builder_scope:exec.bit.control.PlanFragment)
     }
 
@@ -5672,7 +5753,7 @@ public final class BitControl {
       "shared.DrillPBError\022\024\n\014running_time\030\t \001(" +
       
"\003\"k\n\rFragmentState\022\013\n\007SENDING\020\000\022\027\n\023AWAIT" +
       
"ING_ALLOCATION\020\001\022\013\n\007RUNNING\020\002\022\014\n\010FINISHE" +
-      
"D\020\003\022\r\n\tCANCELLED\020\004\022\n\n\006FAILED\020\005\"\225\003\n\014PlanF"
 +
+      
"D\020\003\022\r\n\tCANCELLED\020\004\022\n\n\006FAILED\020\005\"\250\003\n\014PlanF"
 +
       "ragment\022(\n\006handle\030\001 \001(\0132\030.exec.bit.Fragm",
       "entHandle\022\024\n\014network_cost\030\004 
\001(\002\022\020\n\010cpu_c" +
       "ost\030\005 \001(\002\022\021\n\tdisk_cost\030\006 
\001(\002\022\023\n\013memory_c" +
@@ -5682,17 +5763,17 @@ public final class BitControl {
       "xec.DrillbitEndpoint\022\035\n\013mem_initial\030\014 \001(" +
       "\003:\01020000000\022\034\n\007mem_max\030\r \001(\003:\0132000000000" +
       "0\022\030\n\020query_start_time\030\016 \001(\003\0221\n\013credentia" +
-      "ls\030\017 \001(\0132\034.exec.shared.UserCredentials\"f" +
-      "\n\017WorkQueueStatus\022(\n\010endpoint\030\001 \001(\0132\026.ex",
-      "ec.DrillbitEndpoint\022\024\n\014queue_length\030\002 \001(" +
-      "\005\022\023\n\013report_time\030\003 
\001(\003*\332\001\n\007RpcType\022\r\n\tHA" +
-      
"NDSHAKE\020\000\022\007\n\003ACK\020\001\022\013\n\007GOODBYE\020\002\022\033\n\027REQ_I"
 +
-      "NIATILIZE_FRAGMENT\020\003\022\027\n\023REQ_CANCEL_FRAGM" +
-      
"ENT\020\006\022\027\n\023REQ_FRAGMENT_STATUS\020\007\022\022\n\016REQ_BI" +
-      "T_STATUS\020\010\022\030\n\024RESP_FRAGMENT_HANDLE\020\t\022\030\n\024" 
+
-      "RESP_FRAGMENT_STATUS\020\n\022\023\n\017RESP_BIT_STATU" +
-      "S\020\013B+\n\033org.apache.drill.exec.protoB\nBitC" +
-      "ontrolH\001"
+      "ls\030\017 \001(\0132\034.exec.shared.UserCredentials\022\021" +
+      "\n\ttime_zone\030\020 \001(\005\"f\n\017WorkQueueStatus\022(\n\010",
+      "endpoint\030\001 \001(\0132\026.exec.DrillbitEndpoint\022\024" +
+      "\n\014queue_length\030\002 \001(\005\022\023\n\013report_time\030\003 
\001(" +
+      
"\003*\332\001\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003ACK\020\001\022\013\n"
 +
+      "\007GOODBYE\020\002\022\033\n\027REQ_INIATILIZE_FRAGMENT\020\003\022" +
+      "\027\n\023REQ_CANCEL_FRAGMENT\020\006\022\027\n\023REQ_FRAGMENT" +
+      
"_STATUS\020\007\022\022\n\016REQ_BIT_STATUS\020\010\022\030\n\024RESP_FR" +
+      "AGMENT_HANDLE\020\t\022\030\n\024RESP_FRAGMENT_STATUS\020" +
+      "\n\022\023\n\017RESP_BIT_STATUS\020\013B+\n\033org.apache.dri" +
+      "ll.exec.protoB\nBitControlH\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner 
assigner =
       new 
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -5722,7 +5803,7 @@ public final class BitControl {
           internal_static_exec_bit_control_PlanFragment_fieldAccessorTable = 
new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_exec_bit_control_PlanFragment_descriptor,
-              new java.lang.String[] { "Handle", "NetworkCost", "CpuCost", 
"DiskCost", "MemoryCost", "FragmentJson", "Assignment", "LeafFragment", 
"Foreman", "MemInitial", "MemMax", "QueryStartTime", "Credentials", });
+              new java.lang.String[] { "Handle", "NetworkCost", "CpuCost", 
"DiskCost", "MemoryCost", "FragmentJson", "Assignment", "LeafFragment", 
"Foreman", "MemInitial", "MemMax", "QueryStartTime", "Credentials", "TimeZone", 
});
           internal_static_exec_bit_control_WorkQueueStatus_descriptor =
             getDescriptor().getMessageTypes().get(4);
           internal_static_exec_bit_control_WorkQueueStatus_fieldAccessorTable 
= new

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/22eab587/protocol/src/main/protobuf/BitControl.proto
----------------------------------------------------------------------
diff --git a/protocol/src/main/protobuf/BitControl.proto 
b/protocol/src/main/protobuf/BitControl.proto
index 25cae11..a738646 100644
--- a/protocol/src/main/protobuf/BitControl.proto
+++ b/protocol/src/main/protobuf/BitControl.proto
@@ -75,7 +75,8 @@ message PlanFragment {
   optional int64 mem_initial = 12 [default = 20000000]; // 20 megs
   optional int64 mem_max = 13 [default = 20000000000]; // 20 gigs
   optional int64 query_start_time = 14; // start time of query in milliseconds
-  optional exec.shared.UserCredentials credentials = 15; 
+  optional exec.shared.UserCredentials credentials = 15;
+  optional int32 time_zone = 16;
 }
 
 message WorkQueueStatus{

Reply via email to