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{
