diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java index 0db9b9d988..62d082d704 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java @@ -65,7 +65,6 @@ import org.apache.hadoop.hive.ql.udf.UDFE; import org.apache.hadoop.hive.ql.udf.UDFExp; import org.apache.hadoop.hive.ql.udf.UDFFindInSet; -import org.apache.hadoop.hive.ql.udf.UDFFromUnixTime; import org.apache.hadoop.hive.ql.udf.UDFHex; import org.apache.hadoop.hive.ql.udf.UDFHour; import org.apache.hadoop.hive.ql.udf.UDFJson; @@ -304,7 +303,7 @@ system.registerGenericUDF("hour", UDFHour.class); system.registerGenericUDF("minute", UDFMinute.class); system.registerGenericUDF("second", UDFSecond.class); - system.registerUDF("from_unixtime", UDFFromUnixTime.class, false); + system.registerGenericUDF("from_unixtime", GenericUDFFromUnixTime.class); system.registerGenericUDF("to_date", GenericUDFDate.class); system.registerUDF("weekofyear", UDFWeekOfYear.class, false); system.registerGenericUDF("last_day", GenericUDFLastDay.class); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFilterOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFilterOperator.java index 73965ad226..37c0ed8889 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFilterOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFilterOperator.java @@ -81,7 +81,7 @@ public VectorizationContext getInputVectorizationContext() { @Override protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(predicateExpression); + VectorExpression.doTransientInit(predicateExpression, hconf); try { heartbeatInterval = HiveConf.getIntVar(hconf, HiveConf.ConfVars.HIVESENDHEARTBEAT); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java index b5f5933670..6ffd5136cc 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java @@ -980,7 +980,7 @@ private void setupGroupingSets() { protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); isLlap = LlapProxy.isDaemon(); - VectorExpression.doTransientInit(keyExpressions); + VectorExpression.doTransientInit(keyExpressions, hconf); List objectInspectors = new ArrayList(); @@ -1019,7 +1019,7 @@ protected void initializeOp(Configuration hconf) throws HiveException { throw new HiveException("Failed to create " + vecAggrClass.getSimpleName() + "(VectorAggregationDesc) object ", e); } - VectorExpression.doTransientInit(vecAggrExpr.getInputExpression()); + VectorExpression.doTransientInit(vecAggrExpr.getInputExpression(), hconf); aggregators[i] = vecAggrExpr; ObjectInspector objInsp = diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java index 11ea6f88f1..9afbd74878 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java @@ -108,9 +108,9 @@ public VectorMapJoinOperator (CompilationOpContext ctx, OperatorDesc conf, @Override public void initializeOp(Configuration hconf) throws HiveException { - VectorExpression.doTransientInit(bigTableFilterExpressions); - VectorExpression.doTransientInit(keyExpressions); - VectorExpression.doTransientInit(bigTableValueExpressions); + VectorExpression.doTransientInit(bigTableFilterExpressions, hconf); + VectorExpression.doTransientInit(keyExpressions, hconf); + VectorExpression.doTransientInit(bigTableValueExpressions, hconf); // Use a final variable to properly parameterize the processVectorInspector closure. // Using a member variable in the closure will not do the right thing... diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java index 267d0dc5a1..bef1a79b53 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java @@ -168,9 +168,9 @@ public VectorizationContext getInputVectorizationContext() { @Override protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(bigTableFilterExpressions); - VectorExpression.doTransientInit(keyExpressions); - VectorExpression.doTransientInit(bigTableValueExpressions); + VectorExpression.doTransientInit(bigTableFilterExpressions, hconf); + VectorExpression.doTransientInit(keyExpressions, hconf); + VectorExpression.doTransientInit(bigTableValueExpressions, hconf); vrbCtx = new VectorizedRowBatchCtx(); vrbCtx.init((StructObjectInspector) this.outputObjInspector, vOutContext.getScratchColumnTypeNames()); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java index 2f296c9654..93c1525747 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java @@ -108,7 +108,7 @@ protected void initializeOp(Configuration hconf) throws HiveException { if (conf.isSelStarNoCompute()) { return; } - VectorExpression.doTransientInit(vExpressions); + VectorExpression.doTransientInit(vExpressions, hconf); List objectInspectors = new ArrayList(); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java index a211308c28..c80bc804a2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorTopNKeyOperator.java @@ -70,7 +70,7 @@ public VectorTopNKeyOperator(CompilationOpContext ctx) { protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(vectorDesc.getKeyExpressions()); + VectorExpression.doTransientInit(vectorDesc.getKeyExpressions(), hconf); for (VectorExpression keyExpression : vectorDesc.getKeyExpressions()) { keyExpression.init(hconf); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpression.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpression.java index 893da151b0..960f4300f5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpression.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpression.java @@ -168,26 +168,27 @@ public void transientInit() throws HiveException { // Do nothing by default. } - public static void doTransientInit(VectorExpression vecExpr) throws HiveException { + public static void doTransientInit(VectorExpression vecExpr, Configuration conf) throws HiveException { if (vecExpr == null) { return; } - doTransientInitRecurse(vecExpr); + doTransientInitRecurse(vecExpr, conf); } - public static void doTransientInit(VectorExpression[] vecExprs) throws HiveException { + public static void doTransientInit(VectorExpression[] vecExprs, Configuration conf) throws HiveException { if (vecExprs == null) { return; } for (VectorExpression vecExpr : vecExprs) { - doTransientInitRecurse(vecExpr); + doTransientInitRecurse(vecExpr, conf); } } - private static void doTransientInitRecurse(VectorExpression vecExpr) throws HiveException { + private static void doTransientInitRecurse(VectorExpression vecExpr, Configuration conf) throws HiveException { // Well, don't recurse but make sure all children are initialized. vecExpr.transientInit(); + vecExpr.init(conf); List newChildren = new ArrayList(); VectorExpression[] children = vecExpr.getChildExpressions(); if (children != null) { @@ -200,6 +201,7 @@ private static void doTransientInitRecurse(VectorExpression vecExpr) throws Hive Collections.addAll(newChildren, children); } childVecExpr.transientInit(); + childVecExpr.init(conf); } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java index 9acfa86104..b2d617a0a1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector; import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector; import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java index 1f83eadcbb..072cbf9386 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java @@ -18,7 +18,11 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions; -import org.apache.hadoop.hive.serde2.io.DateWritableV2; +import java.time.ZoneId; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.type.Date; +import org.apache.hadoop.hive.common.type.TimestampTZUtil; +import org.apache.hadoop.hive.conf.HiveConf; /** * Return Unix Timestamp. @@ -28,18 +32,27 @@ private static final long serialVersionUID = 1L; - private DateWritableV2 dateWritable; + private Date date; + private ZoneId timeZone; + + @Override + public void init(Configuration conf) { + if (timeZone == null) { + String timeZoneStr = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_LOCAL_TIME_ZONE); + timeZone = TimestampTZUtil.parseTimeZone(timeZoneStr); + } + } @Override protected long getDateField(long days) { - dateWritable.set((int) days); - return dateWritable.getTimeInSeconds(); + date.setTimeInDays((int) days); + return TimestampTZUtil.convert(date, timeZone).getEpochSecond(); } public VectorUDFUnixTimeStampDate(int colNum, int outputColumnNum) { /* not a real field */ super(-1, colNum, outputColumnNum); - dateWritable = new DateWritableV2(); + date = new Date(); } public VectorUDFUnixTimeStampDate() { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java index 3b5b33b157..82c3204411 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java @@ -18,6 +18,10 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions; +import java.time.ZoneId; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.type.TimestampTZUtil; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.io.Text; import java.nio.charset.CharacterCodingException; @@ -35,9 +39,9 @@ private static final long serialVersionUID = 1L; - private transient final SimpleDateFormat format = getFormatter(); - private transient final Calendar calendar = Calendar.getInstance( - TimeZone.getTimeZone("UTC")); + private transient SimpleDateFormat format; + private transient Calendar calendar; + private transient ZoneId timeZone; public VectorUDFUnixTimeStampString(int colNum, int outputColumnNum) { super(colNum, outputColumnNum, -1, -1); @@ -47,6 +51,16 @@ public VectorUDFUnixTimeStampString() { super(); } + @Override + public void init(Configuration conf) { + if (timeZone == null) { + String timeZoneStr = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_LOCAL_TIME_ZONE); + timeZone = TimestampTZUtil.parseTimeZone(timeZoneStr); + calendar = Calendar.getInstance(TimeZone.getTimeZone(timeZone)); + format = getFormatter(timeZone); + } + } + @Override protected long doGetField(byte[] bytes, int start, int length) throws ParseException { Date date = null; @@ -59,9 +73,9 @@ protected long doGetField(byte[] bytes, int start, int length) throws ParseExcep return calendar.getTimeInMillis() / 1000; } - private static SimpleDateFormat getFormatter() { + private static SimpleDateFormat getFormatter(ZoneId timeZone) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - format.setTimeZone(TimeZone.getTimeZone("UTC")); + format.setTimeZone(TimeZone.getTimeZone(timeZone)); return format; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java index a69c9f7231..c9c4f1c896 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java @@ -18,6 +18,11 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions; +import java.time.ZoneId; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.type.Timestamp; +import org.apache.hadoop.hive.common.type.TimestampTZUtil; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector; /** @@ -28,14 +33,29 @@ private static final long serialVersionUID = 1L; + private Timestamp timestamp; + private ZoneId timeZone; + + + @Override + public void init(Configuration conf) { + if (timeZone == null) { + String timeZoneStr = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_LOCAL_TIME_ZONE); + timeZone = TimestampTZUtil.parseTimeZone(timeZoneStr); + } + } + @Override protected long getTimestampField(TimestampColumnVector timestampColVector, int elementNum) { - return timestampColVector.asScratchTimestamp(elementNum).getTime() / 1000; + java.sql.Timestamp ts = timestampColVector.asScratchTimestamp(elementNum); + timestamp.setTimeInMillis(ts.getTime(), ts.getNanos()); + return TimestampTZUtil.convert(timestamp, timeZone).getEpochSecond(); } public VectorUDFUnixTimeStampTimestamp(int colNum, int outputColumnNum) { /* not a real field */ super(-1, colNum, outputColumnNum); + timestamp = new Timestamp(); } public VectorUDFUnixTimeStampTimestamp() { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java index 2d5b22af85..2380d936f2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java @@ -554,10 +554,10 @@ protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(bigTableFilterExpressions); - VectorExpression.doTransientInit(bigTableKeyExpressions); - VectorExpression.doTransientInit(bigTableValueExpressions); - VectorExpression.doTransientInit(bigTableValueExpressions); + VectorExpression.doTransientInit(bigTableFilterExpressions, hconf); + VectorExpression.doTransientInit(bigTableKeyExpressions, hconf); + VectorExpression.doTransientInit(bigTableValueExpressions, hconf); + VectorExpression.doTransientInit(bigTableValueExpressions, hconf); /* * Get configuration parameters. diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java index 4664ae9c61..5c409e4573 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java @@ -248,8 +248,8 @@ public VectorReduceSinkCommonOperator(CompilationOpContext ctx, OperatorDesc con @Override protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(reduceSinkKeyExpressions); - VectorExpression.doTransientInit(reduceSinkValueExpressions); + VectorExpression.doTransientInit(reduceSinkKeyExpressions, hconf); + VectorExpression.doTransientInit(reduceSinkValueExpressions, hconf); if (LOG.isDebugEnabled()) { // Determine the name of our map or reduce task for debug tracing. diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkObjectHashOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkObjectHashOperator.java index ef5ca02989..2192274859 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkObjectHashOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkObjectHashOperator.java @@ -146,8 +146,8 @@ private void evaluateBucketExpr(VectorizedRowBatch batch, int rowNum, int bucket @Override protected void initializeOp(Configuration hconf) throws HiveException { super.initializeOp(hconf); - VectorExpression.doTransientInit(reduceSinkBucketExpressions); - VectorExpression.doTransientInit(reduceSinkPartitionExpressions); + VectorExpression.doTransientInit(reduceSinkBucketExpressions, hconf); + VectorExpression.doTransientInit(reduceSinkPartitionExpressions, hconf); if (!isEmptyKey) { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java index b650299a9a..087ba47cab 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java @@ -184,7 +184,6 @@ import org.apache.hadoop.hive.ql.udf.UDFDayOfWeek; import org.apache.hadoop.hive.ql.udf.UDFDegrees; import org.apache.hadoop.hive.ql.udf.UDFExp; -import org.apache.hadoop.hive.ql.udf.UDFFromUnixTime; import org.apache.hadoop.hive.ql.udf.UDFHex; import org.apache.hadoop.hive.ql.udf.UDFHour; import org.apache.hadoop.hive.ql.udf.UDFLike; @@ -431,7 +430,7 @@ public Vectorizer() { supportedGenericUDFs.add(UDFSecond.class); supportedGenericUDFs.add(UDFWeekOfYear.class); supportedGenericUDFs.add(GenericUDFToUnixTimeStamp.class); - supportedGenericUDFs.add(UDFFromUnixTime.class); + supportedGenericUDFs.add(GenericUDFFromUnixTime.class); supportedGenericUDFs.add(GenericUDFDateAdd.class); supportedGenericUDFs.add(GenericUDFDateSub.class); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java index 3cee0c1d1c..abf10d8566 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java @@ -20,7 +20,6 @@ import java.text.SimpleDateFormat; import java.util.Date; -import java.util.TimeZone; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDF; @@ -37,6 +36,7 @@ extended = "Example:\n" + " > SELECT _FUNC_(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1;\n" + " '1970-01-01 00:00:00'") +@Deprecated public class UDFFromUnixTime extends UDF { private SimpleDateFormat formatter; @@ -120,7 +120,6 @@ public Text evaluate(IntWritable unixtime, Text format) { private Text eval(long unixtime, Text format) { if (!format.equals(lastFormat)) { formatter = new SimpleDateFormat(format.toString()); - formatter.setTimeZone(TimeZone.getTimeZone("UTC")); lastFormat.set(format); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUnixTime.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUnixTime.java new file mode 100644 index 0000000000..b71bc0bccb --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUnixTime.java @@ -0,0 +1,173 @@ +/* + * 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.hadoop.hive.ql.udf.generic; + +import java.text.SimpleDateFormat; +import java.time.ZoneId; +import java.util.Date; +import java.util.TimeZone; +import org.apache.commons.lang.StringUtils; +import org.apache.hadoop.hive.common.type.TimestampTZUtil; +import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.MapredContext; +import org.apache.hadoop.hive.ql.exec.UDFArgumentException; +import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.session.SessionState; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.Converter; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; +import org.apache.hadoop.io.Text; + +/** + * UDFFromUnixTime. + * + */ +@Description(name = "from_unixtime", + value = "_FUNC_(unix_time, format) - returns unix_time in the specified format", + extended = "Example:\n" + + " > SELECT _FUNC_(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1;\n" + + " '1970-01-01 00:00:00'") +public class GenericUDFFromUnixTime extends GenericUDF { + + private transient IntObjectInspector inputIntOI; + private transient LongObjectInspector inputLongOI; + private transient Converter inputTextConverter; + private transient ZoneId timeZone; + private transient final Text result = new Text(); + + private transient SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private transient String lastFormat = null; + + + @Override + public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { + if (arguments.length < 1) { + throw new UDFArgumentLengthException("The function " + getName().toUpperCase() + + "requires at least one argument"); + } + if (arguments.length > 2) { + throw new UDFArgumentLengthException("Too many arguments for the function " + getName().toUpperCase()); + } + for (ObjectInspector argument : arguments) { + if (argument.getCategory() != Category.PRIMITIVE) { + throw new UDFArgumentException(getName().toUpperCase() + + " only takes primitive types, got " + argument.getTypeName()); + } + } + + PrimitiveObjectInspector arg0OI = (PrimitiveObjectInspector) arguments[0]; + switch (arg0OI.getPrimitiveCategory()) { + case INT: + inputIntOI = (IntObjectInspector) arguments[0]; + break; + case LONG: + inputLongOI = (LongObjectInspector) arguments[0]; + break; + default: + throw new UDFArgumentException("The function " + getName().toUpperCase() + + " takes only int/long types for first argument. Got Type:" + arg0OI.getPrimitiveCategory().name()); + } + + if (arguments.length == 2) { + PrimitiveObjectInspector arg1OI = (PrimitiveObjectInspector) arguments[1]; + switch (arg1OI.getPrimitiveCategory()) { + case CHAR: + case VARCHAR: + case STRING: + inputTextConverter = ObjectInspectorConverters.getConverter(arg1OI, + PrimitiveObjectInspectorFactory.javaStringObjectInspector); + break; + default: + throw new UDFArgumentException("The function " + getName().toUpperCase() + + " takes only string type for second argument. Got Type:" + arg1OI.getPrimitiveCategory().name()); + } + } + + if (timeZone == null) { + timeZone = SessionState.get().getConf().getLocalTimeZone(); + formatter.setTimeZone(TimeZone.getTimeZone(timeZone)); + } + + return PrimitiveObjectInspectorFactory.writableStringObjectInspector; + } + + public void configure(MapredContext context) { + if (context != null) { + String timeZoneStr = HiveConf.getVar(context.getJobConf(), HiveConf.ConfVars.HIVE_LOCAL_TIME_ZONE); + timeZone = TimestampTZUtil.parseTimeZone(timeZoneStr); + formatter.setTimeZone(TimeZone.getTimeZone(timeZone)); + } + } + + @Override + public Object evaluate(DeferredObject[] arguments) throws HiveException { + if (arguments[0].get() == null) { + return null; + } + + if (inputTextConverter != null) { + if (arguments[1].get() == null) { + return null; + } + String format = (String) inputTextConverter.convert(arguments[1].get()); + if (format == null) { + return null; + } + if (!format.equals(lastFormat)) { + formatter = new SimpleDateFormat(format); + formatter.setTimeZone(TimeZone.getTimeZone(timeZone)); + lastFormat = format; + } + } + + // convert seconds to milliseconds + long unixtime; + if (inputIntOI != null) { + unixtime = inputIntOI.get(arguments[0].get()); + } else { + unixtime = inputLongOI.get(arguments[0].get()); + } + + Date date = new Date(unixtime * 1000L); + result.set(formatter.format(date)); + return result; + } + + protected String getName() { + return "from_unixtime"; + } + + @Override + public String getDisplayString(String[] children) { + StringBuilder sb = new StringBuilder(32); + sb.append(getName()); + sb.append('('); + sb.append(StringUtils.join(children, ", ")); + sb.append(')'); + return sb.toString(); + } + +} diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java index 3c3796e8a6..e63f0879a7 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java @@ -20,12 +20,15 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.ZoneId; import java.util.TimeZone; import org.apache.commons.lang.StringUtils; -import org.apache.hadoop.hive.common.type.Timestamp; import org.apache.hadoop.hive.common.type.TimestampTZ; +import org.apache.hadoop.hive.common.type.TimestampTZUtil; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.MapredContext; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; @@ -33,6 +36,7 @@ import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorUDFUnixTimeStampString; import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorUDFUnixTimeStampTimestamp; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters; @@ -60,10 +64,12 @@ private transient TimestampLocalTZObjectInspector inputTimestampLocalTzOI; private transient Converter inputTextConverter; private transient Converter patternConverter; + private transient ZoneId timeZone; private transient String lasPattern = "yyyy-MM-dd HH:mm:ss"; private transient final SimpleDateFormat formatter = new SimpleDateFormat(lasPattern); + @Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { initializeInput(arguments); @@ -76,14 +82,12 @@ protected void initializeInput(ObjectInspector[] arguments) throws UDFArgumentEx "requires at least one argument"); } for (ObjectInspector argument : arguments) { - if (arguments[0].getCategory() != Category.PRIMITIVE) { + if (argument.getCategory() != Category.PRIMITIVE) { throw new UDFArgumentException(getName().toUpperCase() + " only takes string/date/timestamp types, got " + argument.getTypeName()); } } - formatter.setTimeZone(TimeZone.getTimeZone("UTC")); - PrimitiveObjectInspector arg1OI = (PrimitiveObjectInspector) arguments[0]; switch (arg1OI.getPrimitiveCategory()) { case CHAR: @@ -117,6 +121,19 @@ protected void initializeInput(ObjectInspector[] arguments) throws UDFArgumentEx + " takes only string/date/timestamp/timestampwltz types. Got Type:" + arg1OI .getPrimitiveCategory().name()); } + + if (timeZone == null) { + timeZone = SessionState.get().getConf().getLocalTimeZone(); + formatter.setTimeZone(TimeZone.getTimeZone(timeZone)); + } + } + + public void configure(MapredContext context) { + if (context != null) { + String timeZoneStr = HiveConf.getVar(context.getJobConf(), HiveConf.ConfVars.HIVE_LOCAL_TIME_ZONE); + timeZone = TimestampTZUtil.parseTimeZone(timeZoneStr); + formatter.setTimeZone(TimeZone.getTimeZone(timeZone)); + } } protected String getName() { @@ -151,27 +168,24 @@ public Object evaluate(DeferredObject[] arguments) throws HiveException { } try { retValue.set(formatter.parse(textVal).getTime() / 1000); - return retValue; } catch (ParseException e) { return null; } } else if (inputDateOI != null) { - retValue.set(inputDateOI.getPrimitiveWritableObject(arguments[0].get()) - .getTimeInSeconds()); - return retValue; - } else if (inputTimestampLocalTzOI != null) { + TimestampTZ timestampTZ = TimestampTZUtil.convert( + inputDateOI.getPrimitiveJavaObject(arguments[0].get()), timeZone); + retValue.set(timestampTZ.getEpochSecond()); + } else if (inputTimestampOI != null) { + TimestampTZ timestampTZ = TimestampTZUtil.convert( + inputTimestampOI.getPrimitiveJavaObject(arguments[0].get()), timeZone); + retValue.set(timestampTZ.getEpochSecond()); + } else { TimestampTZ timestampTZ = inputTimestampLocalTzOI.getPrimitiveJavaObject(arguments[0].get()); retValue.set(timestampTZ.getEpochSecond()); - return retValue; } - Timestamp timestamp = inputTimestampOI.getPrimitiveJavaObject(arguments[0].get()); - setValueFromTs(retValue, timestamp); - return retValue; - } - protected static void setValueFromTs(LongWritable value, Timestamp timestamp) { - value.set(timestamp.toEpochSecond()); + return retValue; } @Override diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUnixTimeStamp.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUnixTimeStamp.java index d560c62adb..4bab23afb7 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUnixTimeStamp.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUnixTimeStamp.java @@ -18,9 +18,6 @@ package org.apache.hadoop.hive.ql.udf.generic; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.apache.hadoop.hive.common.type.Timestamp; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import org.apache.hadoop.hive.ql.metadata.HiveException; @@ -36,16 +33,17 @@ extended = "Converts the specified time to number of seconds " + "since 1970-01-01. The _FUNC_(void) overload is deprecated, use current_timestamp.") public class GenericUDFUnixTimeStamp extends GenericUDFToUnixTimeStamp { - private static final Logger LOG = LoggerFactory.getLogger(GenericUDFUnixTimeStamp.class); - private LongWritable currentTimestamp; // retValue is transient so store this separately. + + private LongWritable currentInstant; // retValue is transient so store this separately. + @Override protected void initializeInput(ObjectInspector[] arguments) throws UDFArgumentException { if (arguments.length > 0) { super.initializeInput(arguments); } else { - if (currentTimestamp == null) { - currentTimestamp = new LongWritable(0); - setValueFromTs(currentTimestamp, Timestamp.ofEpochMilli(SessionState.get().getQueryCurrentTimestamp().toEpochMilli())); + if (currentInstant == null) { + currentInstant = new LongWritable(0); + currentInstant.set(SessionState.get().getQueryCurrentTimestamp().toEpochMilli()); String msg = "unix_timestamp(void) is deprecated. Use current_timestamp instead."; SessionState.getConsole().printInfo(msg, false); } @@ -59,6 +57,6 @@ protected String getName() { @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { - return (arguments.length == 0) ? currentTimestamp : super.evaluate(arguments); + return (arguments.length == 0) ? currentInstant : super.evaluate(arguments); } } diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/aggregation/AggregationBase.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/aggregation/AggregationBase.java index aa6e127aa0..e0e86a47d8 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/aggregation/AggregationBase.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/aggregation/AggregationBase.java @@ -242,7 +242,7 @@ protected static boolean doVectorTest(String aggregationName, TypeInfo typeInfo, throw new HiveException("Failed to create " + vecAggrClass.getSimpleName() + "(VectorAggregationDesc) object ", e); } - VectorExpression.doTransientInit(vecAggrExpr.getInputExpression()); + VectorExpression.doTransientInit(vecAggrExpr.getInputExpression(), hiveConf); // System.out.println("*VECTOR AGGREGATION EXPRESSION* " + vecAggrExpr.getClass().getSimpleName()); diff --git a/ql/src/test/queries/clientpositive/foldts.q b/ql/src/test/queries/clientpositive/foldts.q index 8b358a654a..97b9ac5547 100644 --- a/ql/src/test/queries/clientpositive/foldts.q +++ b/ql/src/test/queries/clientpositive/foldts.q @@ -20,3 +20,15 @@ explain select from_unixtime(unix_timestamp(ctimestamp1), 'EEEE') from alltypesorc limit 1; select from_unixtime(unix_timestamp(ctimestamp1), 'EEEE') from alltypesorc limit 1; + +select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1; + +select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1; + +set time zone Europe/Rome; + +select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1; + +select from_unixtime(to_unix_timestamp(cast(cast(ctimestamp1 as string) || ' America/Los_Angeles' as timestamp with local time zone))) from alltypesorc limit 1; + +select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1; diff --git a/ql/src/test/queries/clientpositive/udf5.q b/ql/src/test/queries/clientpositive/udf5.q index a967d1f174..43d6088025 100644 --- a/ql/src/test/queries/clientpositive/udf5.q +++ b/ql/src/test/queries/clientpositive/udf5.q @@ -12,3 +12,7 @@ EXPLAIN SELECT from_unixtime(unix_timestamp('2010-01-13 11:57:40', 'yyyy-MM-dd HH:mm:ss'), 'MM/dd/yy HH:mm:ss'), from_unixtime(unix_timestamp('2010-01-13 11:57:40')) from dest1_n14; SELECT from_unixtime(unix_timestamp('2010-01-13 11:57:40', 'yyyy-MM-dd HH:mm:ss'), 'MM/dd/yy HH:mm:ss'), from_unixtime(unix_timestamp('2010-01-13 11:57:40')) from dest1_n14; + +set time zone Europe/Rome; + +SELECT from_unixtime(1226446340), to_date(from_unixtime(1226446340)), day('2008-11-01'), month('2008-11-01'), year('2008-11-01'), day('2008-11-01 15:32:20'), month('2008-11-01 15:32:20'), year('2008-11-01 15:32:20') FROM dest1_n14; diff --git a/ql/src/test/results/clientpositive/foldts.q.out b/ql/src/test/results/clientpositive/foldts.q.out index 99605b48bb..d5b732700c 100644 --- a/ql/src/test/results/clientpositive/foldts.q.out +++ b/ql/src/test/results/clientpositive/foldts.q.out @@ -49,7 +49,7 @@ POSTHOOK: query: select ctimestamp1, unix_timestamp(ctimestamp1), to_unix_timest POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc #### A masked pattern was here #### -1969-12-31 15:59:46.674 -28813 -28813 +1969-12-31 15:59:46.674 -14 -14 PREHOOK: query: create temporary table src1orc stored as orc as select * from src1 PREHOOK: type: CREATETABLE_AS_SELECT PREHOOK: Input: default@src1 @@ -164,3 +164,48 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc #### A masked pattern was here #### Wednesday +PREHOOK: query: select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +1969-12-31 15:59:46 +PREHOOK: query: select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +1969-12-31T15:59:46-08:00 +PREHOOK: query: select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select from_unixtime(to_unix_timestamp(ctimestamp1)) from alltypesorc limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +1969-12-31 15:59:46 +PREHOOK: query: select from_unixtime(to_unix_timestamp(cast(cast(ctimestamp1 as string) || ' America/Los_Angeles' as timestamp with local time zone))) from alltypesorc limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select from_unixtime(to_unix_timestamp(cast(cast(ctimestamp1 as string) || ' America/Los_Angeles' as timestamp with local time zone))) from alltypesorc limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +1970-01-01 00:59:46 +PREHOOK: query: select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +POSTHOOK: query: select from_unixtime(unix_timestamp(ctimestamp1) ,"yyyy-MM-dd'T'HH:mm:ssXXX") from alltypesorc limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@alltypesorc +#### A masked pattern was here #### +1969-12-31T15:59:46+01:00 diff --git a/ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out b/ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out index 38b053703b..0a689487d6 100644 --- a/ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out +++ b/ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out @@ -375,54 +375,54 @@ ORDER BY c1 POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc_string #### A masked pattern was here #### --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.619 1969-12-31 16:00:14.793 1969-12-31 23:59:43.619 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.619 1969-12-31 23:59:43.619 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.627 1969-12-31 16:00:03.679 1969-12-31 23:59:43.627 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.627 1969-12-31 23:59:43.627 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.631 1969-12-31 16:00:06.612 1969-12-31 23:59:43.631 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.631 1969-12-31 23:59:43.631 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.642 1969-12-31 16:00:04.424 1969-12-31 23:59:43.642 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.642 1969-12-31 23:59:43.642 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.643 1969-12-31 16:00:11.764 1969-12-31 23:59:43.643 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.643 1969-12-31 23:59:43.643 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.645 1969-12-31 16:00:00.077 1969-12-31 23:59:43.645 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.645 1969-12-31 23:59:43.645 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.661 1969-12-31 15:59:58.732 1969-12-31 23:59:43.661 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.661 1969-12-31 23:59:43.661 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.689 1969-12-31 15:59:46.848 1969-12-31 23:59:43.689 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.689 1969-12-31 23:59:43.689 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.695 1969-12-31 16:00:06.867 1969-12-31 23:59:43.695 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.695 1969-12-31 23:59:43.695 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.707 1969-12-31 15:59:56.965 1969-12-31 23:59:43.707 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.707 1969-12-31 23:59:43.707 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.71 1969-12-31 16:00:00.687 1969-12-31 23:59:43.71 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.71 1969-12-31 23:59:43.71 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.723 1969-12-31 16:00:03.375 1969-12-31 23:59:43.723 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.723 1969-12-31 23:59:43.723 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.745 1969-12-31 16:00:04.052 1969-12-31 23:59:43.745 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.745 1969-12-31 23:59:43.745 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.764 1969-12-31 16:00:10.52 1969-12-31 23:59:43.764 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.764 1969-12-31 23:59:43.764 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.775 1969-12-31 15:59:48.003 1969-12-31 23:59:43.775 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.775 1969-12-31 23:59:43.775 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.779 1969-12-31 15:59:53.274 1969-12-31 23:59:43.779 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.779 1969-12-31 23:59:43.779 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.785 1969-12-31 16:00:14.096 1969-12-31 23:59:43.785 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.785 1969-12-31 23:59:43.785 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.792 1969-12-31 15:59:52.041 1969-12-31 23:59:43.792 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.792 1969-12-31 23:59:43.792 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.793 1969-12-31 15:59:56.316 1969-12-31 23:59:43.793 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.793 1969-12-31 23:59:43.793 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.811 1969-12-31 16:00:00.479 1969-12-31 23:59:43.811 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.811 1969-12-31 23:59:43.811 NULL --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --45479202281 528 10 25 25 43 8 15 18 true 0528-10-27 08:15:18.941718273 NULL 0528-10-27 08:15:18.941718273 2000-12-18 08:42:30.0005 0528-10-27 08:15:18.941718273 0528-10-27 08:15:18.941718273 NULL -1632453512 2021 9 24 24 38 3 18 32 NULL 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 NULL 1974-10-04 17:21:03.989 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 NULL 1999-10-03 16:59:10.396903939 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 NULL 2010-04-08 02:43:35.861742727 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 NULL 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 NULL NULL NULL -163809583224 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 NULL 1966-08-16 13:36:50.183 -163809583224 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 NULL 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 NULL NULL NULL -490699811 1985 7 20 20 29 9 30 11 true 1985-07-20 09:30:11 1319-02-02 16:31:57.778 1985-07-20 09:30:11 2000-12-18 08:42:30.0005 1985-07-20 09:30:11 1985-07-20 09:30:11 NULL +-45479173904 528 10 25 25 43 8 15 18 true 0528-10-27 08:15:18.941718273 NULL 0528-10-27 08:15:18.941718273 2000-12-18 08:42:30.0005 0528-10-27 08:15:18.941718273 0528-10-27 08:15:18.941718273 NULL +1632478712 2021 9 24 24 38 3 18 32 NULL 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 NULL 1974-10-04 17:21:03.989 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 NULL 1999-10-03 16:59:10.396903939 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 NULL 2010-04-08 02:43:35.861742727 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 NULL 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 NULL NULL NULL +163809612024 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 NULL 1966-08-16 13:36:50.183 +163809612024 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 NULL 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 NULL NULL NULL +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.619 1969-12-31 16:00:14.793 1969-12-31 23:59:43.619 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.619 1969-12-31 23:59:43.619 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.627 1969-12-31 16:00:03.679 1969-12-31 23:59:43.627 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.627 1969-12-31 23:59:43.627 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.631 1969-12-31 16:00:06.612 1969-12-31 23:59:43.631 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.631 1969-12-31 23:59:43.631 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.642 1969-12-31 16:00:04.424 1969-12-31 23:59:43.642 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.642 1969-12-31 23:59:43.642 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.643 1969-12-31 16:00:11.764 1969-12-31 23:59:43.643 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.643 1969-12-31 23:59:43.643 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.645 1969-12-31 16:00:00.077 1969-12-31 23:59:43.645 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.645 1969-12-31 23:59:43.645 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.661 1969-12-31 15:59:58.732 1969-12-31 23:59:43.661 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.661 1969-12-31 23:59:43.661 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.689 1969-12-31 15:59:46.848 1969-12-31 23:59:43.689 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.689 1969-12-31 23:59:43.689 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.695 1969-12-31 16:00:06.867 1969-12-31 23:59:43.695 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.695 1969-12-31 23:59:43.695 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.707 1969-12-31 15:59:56.965 1969-12-31 23:59:43.707 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.707 1969-12-31 23:59:43.707 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.71 1969-12-31 16:00:00.687 1969-12-31 23:59:43.71 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.71 1969-12-31 23:59:43.71 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.723 1969-12-31 16:00:03.375 1969-12-31 23:59:43.723 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.723 1969-12-31 23:59:43.723 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.745 1969-12-31 16:00:04.052 1969-12-31 23:59:43.745 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.745 1969-12-31 23:59:43.745 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.764 1969-12-31 16:00:10.52 1969-12-31 23:59:43.764 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.764 1969-12-31 23:59:43.764 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.775 1969-12-31 15:59:48.003 1969-12-31 23:59:43.775 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.775 1969-12-31 23:59:43.775 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.779 1969-12-31 15:59:53.274 1969-12-31 23:59:43.779 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.779 1969-12-31 23:59:43.779 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.785 1969-12-31 16:00:14.096 1969-12-31 23:59:43.785 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.785 1969-12-31 23:59:43.785 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.792 1969-12-31 15:59:52.041 1969-12-31 23:59:43.792 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.792 1969-12-31 23:59:43.792 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.793 1969-12-31 15:59:56.316 1969-12-31 23:59:43.793 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.793 1969-12-31 23:59:43.793 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.811 1969-12-31 16:00:00.479 1969-12-31 23:59:43.811 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.811 1969-12-31 23:59:43.811 NULL +490725011 1985 7 20 20 29 9 30 11 true 1985-07-20 09:30:11 1319-02-02 16:31:57.778 1985-07-20 09:30:11 2000-12-18 08:42:30.0005 1985-07-20 09:30:11 1985-07-20 09:30:11 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1319-02-02 16:31:57.778 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL false NULL NULL 1319-02-02 16:31:57.778 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL true NULL 2024-11-11 16:42:41.101 NULL 2000-12-18 08:42:30.0005 NULL NULL NULL @@ -573,54 +573,54 @@ ORDER BY c1 POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc_string #### A masked pattern was here #### --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --2736272726 1883 4 17 17 16 4 14 34 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --62018199211 4 9 24 22 39 18 26 29 -1365554626 2013 4 10 10 15 0 43 46 -206730996125 8521 1 16 16 3 20 42 5 -271176065 1978 8 5 5 31 14 41 5 -501179874 1985 11 18 18 47 16 37 54 -501179874 1985 11 18 18 47 16 37 54 -94573819855 4966 12 4 4 49 9 30 55 +-2736243926 1883 4 17 17 16 4 14 34 +-62018170411 4 9 24 22 39 18 26 29 +1365579826 2013 4 10 10 15 0 43 46 +206731024925 8521 1 16 16 3 20 42 5 +271201265 1978 8 5 5 31 14 41 5 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +501208674 1985 11 18 18 47 16 37 54 +501208674 1985 11 18 18 47 16 37 54 +94573848655 4966 12 4 4 49 9 30 55 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL @@ -783,46 +783,46 @@ false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true PREHOOK: query: EXPLAIN VECTORIZATION EXPRESSION SELECT to_unix_timestamp(stimestamp1) AS c1, year(stimestamp1), diff --git a/ql/src/test/results/clientpositive/udf5.q.out b/ql/src/test/results/clientpositive/udf5.q.out index 0227cf7187..58a1dab60b 100644 --- a/ql/src/test/results/clientpositive/udf5.q.out +++ b/ql/src/test/results/clientpositive/udf5.q.out @@ -37,7 +37,7 @@ STAGE PLANS: alias: dest1_n14 Statistics: Num rows: 1 Data size: 7 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - expressions: '2008-11-11 23:32:20' (type: string), DATE'2008-11-11' (type: date), 1 (type: int), 11 (type: int), 2008 (type: int), 1 (type: int), 11 (type: int), 2008 (type: int) + expressions: '2008-11-11 15:32:20' (type: string), DATE'2008-11-11' (type: date), 1 (type: int), 11 (type: int), 2008 (type: int), 1 (type: int), 11 (type: int), 2008 (type: int) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 183 Basic stats: COMPLETE Column stats: COMPLETE ListSink @@ -50,7 +50,7 @@ POSTHOOK: query: SELECT from_unixtime(1226446340), to_date(from_unixtime(1226446 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1_n14 #### A masked pattern was here #### -2008-11-11 23:32:20 2008-11-11 1 11 2008 1 11 2008 +2008-11-11 15:32:20 2008-11-11 1 11 2008 1 11 2008 PREHOOK: query: EXPLAIN SELECT from_unixtime(unix_timestamp('2010-01-13 11:57:40', 'yyyy-MM-dd HH:mm:ss'), 'MM/dd/yy HH:mm:ss'), from_unixtime(unix_timestamp('2010-01-13 11:57:40')) from dest1_n14 PREHOOK: type: QUERY @@ -87,3 +87,12 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1_n14 #### A masked pattern was here #### 01/13/10 11:57:40 2010-01-13 11:57:40 +PREHOOK: query: SELECT from_unixtime(1226446340), to_date(from_unixtime(1226446340)), day('2008-11-01'), month('2008-11-01'), year('2008-11-01'), day('2008-11-01 15:32:20'), month('2008-11-01 15:32:20'), year('2008-11-01 15:32:20') FROM dest1_n14 +PREHOOK: type: QUERY +PREHOOK: Input: default@dest1_n14 +#### A masked pattern was here #### +POSTHOOK: query: SELECT from_unixtime(1226446340), to_date(from_unixtime(1226446340)), day('2008-11-01'), month('2008-11-01'), year('2008-11-01'), day('2008-11-01 15:32:20'), month('2008-11-01 15:32:20'), year('2008-11-01 15:32:20') FROM dest1_n14 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@dest1_n14 +#### A masked pattern was here #### +2008-11-12 00:32:20 2008-11-12 1 11 2008 1 11 2008 diff --git a/ql/src/test/results/clientpositive/udf_from_unixtime.q.out b/ql/src/test/results/clientpositive/udf_from_unixtime.q.out index 87af1f7709..d39c9d7379 100644 --- a/ql/src/test/results/clientpositive/udf_from_unixtime.q.out +++ b/ql/src/test/results/clientpositive/udf_from_unixtime.q.out @@ -11,5 +11,5 @@ from_unixtime(unix_time, format) - returns unix_time in the specified format Example: > SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1; '1970-01-01 00:00:00' -Function class:org.apache.hadoop.hive.ql.udf.UDFFromUnixTime +Function class:org.apache.hadoop.hive.ql.udf.generic.GenericUDFFromUnixTime Function type:BUILTIN diff --git a/ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out b/ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out index 9a42dc0fec..aa6e49b36d 100644 --- a/ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out +++ b/ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out @@ -358,54 +358,54 @@ ORDER BY c1 POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc_string #### A masked pattern was here #### --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.619 1969-12-31 16:00:14.793 1969-12-31 23:59:43.619 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.619 1969-12-31 23:59:43.619 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.627 1969-12-31 16:00:03.679 1969-12-31 23:59:43.627 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.627 1969-12-31 23:59:43.627 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.631 1969-12-31 16:00:06.612 1969-12-31 23:59:43.631 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.631 1969-12-31 23:59:43.631 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.642 1969-12-31 16:00:04.424 1969-12-31 23:59:43.642 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.642 1969-12-31 23:59:43.642 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.643 1969-12-31 16:00:11.764 1969-12-31 23:59:43.643 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.643 1969-12-31 23:59:43.643 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.645 1969-12-31 16:00:00.077 1969-12-31 23:59:43.645 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.645 1969-12-31 23:59:43.645 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.661 1969-12-31 15:59:58.732 1969-12-31 23:59:43.661 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.661 1969-12-31 23:59:43.661 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.689 1969-12-31 15:59:46.848 1969-12-31 23:59:43.689 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.689 1969-12-31 23:59:43.689 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.695 1969-12-31 16:00:06.867 1969-12-31 23:59:43.695 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.695 1969-12-31 23:59:43.695 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.707 1969-12-31 15:59:56.965 1969-12-31 23:59:43.707 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.707 1969-12-31 23:59:43.707 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.71 1969-12-31 16:00:00.687 1969-12-31 23:59:43.71 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.71 1969-12-31 23:59:43.71 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.723 1969-12-31 16:00:03.375 1969-12-31 23:59:43.723 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.723 1969-12-31 23:59:43.723 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.745 1969-12-31 16:00:04.052 1969-12-31 23:59:43.745 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.745 1969-12-31 23:59:43.745 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.764 1969-12-31 16:00:10.52 1969-12-31 23:59:43.764 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.764 1969-12-31 23:59:43.764 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.775 1969-12-31 15:59:48.003 1969-12-31 23:59:43.775 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.775 1969-12-31 23:59:43.775 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.779 1969-12-31 15:59:53.274 1969-12-31 23:59:43.779 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.779 1969-12-31 23:59:43.779 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.785 1969-12-31 16:00:14.096 1969-12-31 23:59:43.785 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.785 1969-12-31 23:59:43.785 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.792 1969-12-31 15:59:52.041 1969-12-31 23:59:43.792 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.792 1969-12-31 23:59:43.792 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.793 1969-12-31 15:59:56.316 1969-12-31 23:59:43.793 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.793 1969-12-31 23:59:43.793 NULL --16 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.811 1969-12-31 16:00:00.479 1969-12-31 23:59:43.811 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.811 1969-12-31 23:59:43.811 NULL --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 --29 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 --45479202281 528 10 25 25 43 8 15 18 true 0528-10-27 08:15:18.941718273 NULL 0528-10-27 08:15:18.941718273 2000-12-18 08:42:30.0005 0528-10-27 08:15:18.941718273 0528-10-27 08:15:18.941718273 NULL -1632453512 2021 9 24 24 38 3 18 32 NULL 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 NULL 1974-10-04 17:21:03.989 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 NULL 1999-10-03 16:59:10.396903939 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 NULL 2010-04-08 02:43:35.861742727 -1632453512 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 NULL 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 NULL NULL NULL -163809583224 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 NULL 1966-08-16 13:36:50.183 -163809583224 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 NULL 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 NULL NULL NULL -490699811 1985 7 20 20 29 9 30 11 true 1985-07-20 09:30:11 1319-02-02 16:31:57.778 1985-07-20 09:30:11 2000-12-18 08:42:30.0005 1985-07-20 09:30:11 1985-07-20 09:30:11 NULL +-45479173904 528 10 25 25 43 8 15 18 true 0528-10-27 08:15:18.941718273 NULL 0528-10-27 08:15:18.941718273 2000-12-18 08:42:30.0005 0528-10-27 08:15:18.941718273 0528-10-27 08:15:18.941718273 NULL +1632478712 2021 9 24 24 38 3 18 32 NULL 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1974-10-04 17:21:03.989 NULL 1974-10-04 17:21:03.989 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 1999-10-03 16:59:10.396903939 NULL 1999-10-03 16:59:10.396903939 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 2010-04-08 02:43:35.861742727 NULL 2010-04-08 02:43:35.861742727 +1632478712 2021 9 24 24 38 3 18 32 false 2021-09-24 03:18:32.4 NULL 1319-02-02 16:31:57.778 2021-09-24 03:18:32.4 NULL NULL NULL +163809612024 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 1966-08-16 13:36:50.183 NULL 1966-08-16 13:36:50.183 +163809612024 7160 12 2 2 48 6 0 24 NULL 7160-12-02 06:00:24.81200852 NULL 1319-02-02 16:31:57.778 7160-12-02 06:00:24.81200852 NULL NULL NULL +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28770 1969 12 31 31 1 23 59 30 NULL 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:30.929 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.628 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.637 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.64 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.661 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.676 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.705 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.709 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.72 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.721 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.749 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 1319-02-02 16:31:57.778 1969-12-31 23:59:43.771 1969-12-31 15:59:58.456 NULL 1969-12-31 15:59:58.456 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.773 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.782 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 1319-02-02 16:31:57.778 1969-12-31 23:59:43.783 1969-12-31 15:59:55.451 NULL 1969-12-31 15:59:55.451 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.807 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 NULL 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 1319-02-02 16:31:57.778 1969-12-31 23:59:43.82 1969-12-31 15:59:58.174 NULL 1969-12-31 15:59:58.174 +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.619 1969-12-31 16:00:14.793 1969-12-31 23:59:43.619 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.619 1969-12-31 23:59:43.619 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.627 1969-12-31 16:00:03.679 1969-12-31 23:59:43.627 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.627 1969-12-31 23:59:43.627 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.631 1969-12-31 16:00:06.612 1969-12-31 23:59:43.631 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.631 1969-12-31 23:59:43.631 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.642 1969-12-31 16:00:04.424 1969-12-31 23:59:43.642 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.642 1969-12-31 23:59:43.642 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.643 1969-12-31 16:00:11.764 1969-12-31 23:59:43.643 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.643 1969-12-31 23:59:43.643 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.645 1969-12-31 16:00:00.077 1969-12-31 23:59:43.645 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.645 1969-12-31 23:59:43.645 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.661 1969-12-31 15:59:58.732 1969-12-31 23:59:43.661 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.661 1969-12-31 23:59:43.661 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.689 1969-12-31 15:59:46.848 1969-12-31 23:59:43.689 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.689 1969-12-31 23:59:43.689 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.695 1969-12-31 16:00:06.867 1969-12-31 23:59:43.695 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.695 1969-12-31 23:59:43.695 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.707 1969-12-31 15:59:56.965 1969-12-31 23:59:43.707 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.707 1969-12-31 23:59:43.707 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.71 1969-12-31 16:00:00.687 1969-12-31 23:59:43.71 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.71 1969-12-31 23:59:43.71 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.723 1969-12-31 16:00:03.375 1969-12-31 23:59:43.723 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.723 1969-12-31 23:59:43.723 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.745 1969-12-31 16:00:04.052 1969-12-31 23:59:43.745 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.745 1969-12-31 23:59:43.745 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.764 1969-12-31 16:00:10.52 1969-12-31 23:59:43.764 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.764 1969-12-31 23:59:43.764 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.775 1969-12-31 15:59:48.003 1969-12-31 23:59:43.775 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.775 1969-12-31 23:59:43.775 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.779 1969-12-31 15:59:53.274 1969-12-31 23:59:43.779 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.779 1969-12-31 23:59:43.779 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.785 1969-12-31 16:00:14.096 1969-12-31 23:59:43.785 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.785 1969-12-31 23:59:43.785 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.792 1969-12-31 15:59:52.041 1969-12-31 23:59:43.792 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.792 1969-12-31 23:59:43.792 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.793 1969-12-31 15:59:56.316 1969-12-31 23:59:43.793 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.793 1969-12-31 23:59:43.793 NULL +28783 1969 12 31 31 1 23 59 43 true 1969-12-31 23:59:43.811 1969-12-31 16:00:00.479 1969-12-31 23:59:43.811 2000-12-18 08:42:30.0005 1969-12-31 23:59:43.811 1969-12-31 23:59:43.811 NULL +490725011 1985 7 20 20 29 9 30 11 true 1985-07-20 09:30:11 1319-02-02 16:31:57.778 1985-07-20 09:30:11 2000-12-18 08:42:30.0005 1985-07-20 09:30:11 1985-07-20 09:30:11 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1319-02-02 16:31:57.778 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL false NULL NULL 1319-02-02 16:31:57.778 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL true NULL 2024-11-11 16:42:41.101 NULL 2000-12-18 08:42:30.0005 NULL NULL NULL @@ -539,54 +539,54 @@ ORDER BY c1 POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc_string #### A masked pattern was here #### --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --17 1969 12 31 31 1 23 59 43 --2736272726 1883 4 17 17 16 4 14 34 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --30 1969 12 31 31 1 23 59 30 --62018199211 4 9 24 22 39 18 26 29 -1365554626 2013 4 10 10 15 0 43 46 -206730996125 8521 1 16 16 3 20 42 5 -271176065 1978 8 5 5 31 14 41 5 -501179874 1985 11 18 18 47 16 37 54 -501179874 1985 11 18 18 47 16 37 54 -94573819855 4966 12 4 4 49 9 30 55 +-2736243926 1883 4 17 17 16 4 14 34 +-62018170411 4 9 24 22 39 18 26 29 +1365579826 2013 4 10 10 15 0 43 46 +206731024925 8521 1 16 16 3 20 42 5 +271201265 1978 8 5 5 31 14 41 5 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28770 1969 12 31 31 1 23 59 30 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +28783 1969 12 31 31 1 23 59 43 +501208674 1985 11 18 18 47 16 37 54 +501208674 1985 11 18 18 47 16 37 54 +94573848655 4966 12 4 4 49 9 30 55 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL @@ -732,46 +732,46 @@ false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true -false true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true +true true true true true true true true true PREHOOK: query: EXPLAIN VECTORIZATION EXPRESSION SELECT to_unix_timestamp(stimestamp1) AS c1, year(stimestamp1),